下表显示了预定义的宏。可以在诸如 #ifdef 之类的预处理程序条件下使用这些值。
表 A–2 预定义的宏
平台 |
宏名称 |
说明 |
---|---|---|
SPARC 和 x86 |
如果启用了“数组”形式的运算符 new 和 delete,则定义 _ _ARRAYNEW。有关更多信息,请参见 -features=[no%]arraynew。 |
|
适用于 varargs.h、stdarg.h 和 sys/varargs.h 中的 _ _builtin_alloca、_ _builtin_va_alist 和 _ _builtin_va_arg_incr 关键字。 |
||
设置为 0(零) |
||
其中,uname -s 是 uname –s 的输出,uname -r 是 uname -r 的输出,且无效字符(如句点 (.))替换为下划线,如 -D_ _SunOS_5_9 和 -D_ _SunOS_5_10 所示。 |
||
如果启用了类型 bool,则定义 _BOOL。有关更多信息,请参见 -features=[no%]bool。 |
||
_WCHAR_T | ||
请参见交互。 |
||
SPARC |
__SUN_PREFETCH=1 | |
__SunOS_OSversion _OSversion | ||
请参见交互。 |
||
sun |
请参见交互。 |
|
SPARC v9 |
只限于 64 位编译模式 |
|
x86 | ||
linux | ||
_ _amd64 | ||
_ _gnu_ _linux_ _ | ||
请参见交互。 |
||
_ _ linux | ||
_ _ linux_ _ | ||
_ _x86 _ 64 |
如果不使用 =def,则 name 定义为 1。
如果使用 +p,则不会定义 sun、unix、sparc 和 i386。
–U