Hoy estaba leyendo sobre la función pura, me confundí con su uso:
Se dice que una función es pura si devuelve el mismo conjunto de valores para el mismo conjunto de entradas y no tiene efectos secundarios observables.
por ejemplo, strlen()
es una función pura mientras que rand()
es impura.
__attribute__ ((pure)) int fun(int i)
{
return i*i;
}
int main()
{
int i=10;
printf("%d",fun(i));//outputs 100
return 0;
}
El programa anterior se comporta de la misma manera que en ausencia de pure
declaración.
¿Cuáles son los beneficios de declarar una función como pure
[si no hay cambios en la salida]?