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