今天,我在阅读有关纯函数的信息,并对其使用感到困惑:
如果函数针对同一组输入返回相同的一组值并且没有任何可观察到的副作用,则称该函数为纯函数。
例如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
[如果输出没有变化]有什么好处?