4.1.12. __pure

__pure 关键字指明声明的函数为纯函数。

只有在以下情况下,函数才是纯函数

__pure 是一个函数限定符。 它影响函数的类型。

Note

此关键字具有等效的函数属性 __attribute__((const))

缺省值

缺省情况下,假定函数不是纯函数。

用法

可以选择纯函数来删除公共子表达式。

限制

声明为纯函数的函数可能没有副作用。 例如,纯函数:

  • 无法调用非纯函数

  • 无法使用全局变量或解除引用的指针,因为编译器假定函数无法访问内存(堆栈内存除外)

  • 使用相同参数两次调用纯函数时,每次必须返回相同的值。

示例


int factr(int n) __pure

{

    int f = 1;



    while (n > 0)

        f *= n--;

    return f;}

另请参阅

Copyright © 2007 ARM Limited. All rights reserved. ARM DUI 0348AC
Non-Confidential