Sun Studio 12:C 用户指南

B.2.63 -X[c|a| t|s]

-X(注意是大写的 X)选项指定对 ISO C 标准不同程度的遵从性。-xc99 的值影响 -X 选项所应用的 ISO C 标准的版本。-xc99 选项的缺省值为支持 1999 ISO/IEC C 标准的 -xc99=all-xc99=none 支持 1990 ISO/IEC C 标准。有关对 1999 ISO/IEC 支持功能的讨论,请参见表 C–6。有关 ISO/IEC C 与 K&R C 的不同点的讨论,请参见G.2 libfast.a

缺省模式是 -Xa

-Xc

c =一致性)对使用非 ISO C 构造的程序发出错误和警告。此选项与 ISO C 严格一致,没有 K&R C 兼容性扩展。如果使用 -Xc 选项,预定义的宏 __STDC__ 的值为 1

-Xa

这是缺省编译器模式。ISO C 以及 K&R C 兼容性扩展,具有 ISO C 要求的语义更改。如果 K&R C 和 ISO C 为同一构造指定不同语义,则编译器使用 ISO C 解释。如果 -Xa 选项与 -xtransition 选项配合使用,则编译器发出关于不同语义的警告。如果使用 -Xa 选项,预定义的宏 __STDC__ 的值为 -0

-Xt

t = 过渡)此选项使用 ISO C 以及 K&R C 兼容性扩展,不进行 ISO C 要求的语义更改。如果 K&R C 和 ISO C 为同一构造指定不同语义,则编译器使用 K&R C 解释。如果将 -Xt 选项与 -xtransition 选项配合使用,则编译器发出关于不同语义的警告。如果使用 -Xt 选项,预定义的宏 __STDC__ 的值为 0

-Xs

(s = K&R C) 试图对 ISO C 和 K&R C 产生不同行为的所有语言构造发出警告。编译器语言包括与 K&R C 兼容的所有功能。此选项调用 cpp 以进行预处理。__STDC__ 在此模式下未定义。