Сьогодні я читав про чисту функцію, заплутавшись із її використанням:
Функція називається чистою, якщо вона повертає однаковий набір значень для одного і того ж набору входів і не має спостережуваних побічних ефектів.
наприклад, strlen()
є чистою функцією, а rand()
є нечистою.
__attribute__ ((pure)) int fun(int i)
{
return i*i;
}
int main()
{
int i=10;
printf("%d",fun(i));//outputs 100
return 0;
}
Вищевказана програма поводиться так само, як і за відсутності pure
декларації.
Які переваги оголошення функції як pure
[якщо не буде змін у виведенні]?