Oracle® Solaris Studio 12.4:C 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

2.11.17 no_side_effect

#pragma no_side_effect(funcname[, funcname…])

funcname 指定当前转换单元内部某个函数的名称。必须在该 pragma 之前使用原型或空参数列表声明的函数。必须在函数的定义之前指定 pragma。对于命名的函数 funcname,该 pragma 声明函数无任何副作用,并返回仅依赖于所传递参数的结果值。另外,funcname 和任何已调用的子函数具有如下行为:

  • 不读取或写入调用时调用程序中可视程序状态的任何部分。

  • 不执行 I/O。

  • 不更改调用时不可视程序状态的任何部分。

使用函数进行优化时,编译器使用此信息。如果函数具有副作用,执行调用该函数的程序的结果是未定义的。编译器在优化级别 3 或更高级别上使用此信息。