4.3.8. __attribute__((pure))

很多函数只影响返回值,并且返回值仅取决于参数和全局变量。 可以对此类函数进行数据流分析,并且可以将其删除。

Note

此函数属性是 ARM 编译器支持的 GNU 编译器扩展。

虽然此函数属性与 __pure 关键字有关,但它们并 等效。 __pure 的等效函数属性是 __attribute__((const))

示例


int Function_Attributes_pure_0(int b) __attribute__ ((pure));

int Function_Attributes_pure_0(int b)

{

    static int aStatic;

    aStatic++;

    return b++;

}

 

int Function_Attributes_pure_2(int b)

{

    int aLocal=0;

    aLocal += Function_Attributes_pure_0(b);

    return 0;

}

在此示例中,由于不使用 Function_Attributes_pure_0 调用的结果,因此可以删除该调用。

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