The __pure keyword asserts that a function declaration is pure.
A function is pure only if:
__pure is a function qualifier. It affects the type of a function.
Note
This keyword has the function attribute equivalent __attribute__((const)).
By default, functions are assumed to be impure.
Pure functions are candidates for common subexpression elimination.
A function that is declared as pure can have no side effects. For example, pure functions:
cannot call impure functions
cannot use global variables or dereference pointers, because the compiler assumes that the function does not access memory, except stack memory
must return the same value each time when called twice with the same parameters.
int factr(int n) __pure
{
int f = 1;
while (n > 0)
f *= n--;
return f;}