Oracle® Solaris Studio 12.4:C 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

5.2 使用 Pragma 以便更好地控制

如果进行基于类型的分析时,更详细的信息可为您提供帮助,则可以使用本节中说明的 pragma 覆盖已生效的别名级别,并指定转换单元中个体类型或指针变量之间的别名关系。如果转换单元中指针的使用与某个可用别名级别一致,而一些特定指针变量的使用方法是某个可用级别不允许的不规则方法,这些 pragma 非常有益。


注 - 如果不在 pragma 之前声明命名的类型或变量,会发出警告消息并忽略 pragma。如果 pragma 出现在其含义所适用的第一个内存引用之后,则程序的结果不确定。

下表中列出的术语用于 pragma 定义。

术语
含义
level
-xalias_level[=l]下所列的任何别名级别。
type
以下任何类型:
  • char, short, int, long, long long, float, double, long double

  • void,表示所有指针类型

  • typedef name,它是 typedef 声明中定义的类型的名称

  • struct name,它是后面有 struct tag 名称的关键字 struct

  • union,它是后面有 union tag 名称的关键字 union

pointer_name
转换单元中指针类型的任何变量的名称。