Hôm nay tôi đã đọc về chức năng thuần túy, đã nhầm lẫn với việc sử dụng nó:
Một hàm được cho là thuần túy nếu nó trả về cùng một bộ giá trị cho cùng một bộ đầu vào và không có bất kỳ tác dụng phụ nào có thể quan sát được.
Ví dụ: strlen()
là một hàm thuần túy trong khi rand()
là một hàm không tinh khiết.
__attribute__ ((pure)) int fun(int i)
{
return i*i;
}
int main()
{
int i=10;
printf("%d",fun(i));//outputs 100
return 0;
}
Chương trình trên hoạt động theo cách tương tự như trong trường hợp không pure
khai báo.
Lợi ích của việc khai báo một hàm là pure
[nếu không có thay đổi trong đầu ra] là gì?