今日、私は純粋関数について読んでいて、その使用法に混乱しました:
関数が同じ入力セットに対して同じ値セットを返し、観察可能な副作用がない場合、関数は純粋であると言われます。
たとえば、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
[出力に変更がない場合]として宣言する利点は何ですか?