Sun Studio 12 Update 1:C++ 用户指南

A.2.9 -Dname[ =def]

为预处理程序定义宏符号 name

使用该选项与在源文件开头包含 #define 指令等效。可以使用多个 -D 选项。

A.2.9.1 值

下表显示了预定义的宏。可以在诸如 #ifdef 之类的预处理程序条件下使用这些值。

表 A–2 预定义的宏

平台 

宏名称  

说明  

SPARC 和 x86 

_ _ARRAYNEW

如果启用了“数组”形式的运算符 newdelete,则定义 _ _ARRAYNEW。有关更多信息,请参见 -features=[no%]arraynew

 

_BUILTIN_VA_ARG_INCR

适用于 varargs.h、stdarg.hsys/varargs.h 中的 _ _builtin_alloca、_ _builtin_va_alist 和 _ _builtin_va_arg_incr 关键字。

 

_ _DATE_ _

 
 

_ _FILE_ _

 
 

__LINE__

 
 

_ _STDC_ _

设置为 0(零) 

 

__SUNPRO_CC=0x510

_ _SUNPRO_CC 值代表编译器的发行版本号。

 

__SUNPRO_CC_COMPAT=4 或 __SUNPRO_CC_COMPAT=5

请参见A.2.7 –compat[={4|5}]

 

_ _TIME_ _

 
 

_ _cplusplus

 
 

__`uname -s`_`uname -r | tr . _`

其中,uname -suname –s 的输出,uname -runame -r 的输出,且无效字符(如句点 (.))替换为下划线,如 -D_ _SunOS_5_9-D_ _SunOS_5_10 所示。

 

_ _unix

 
 

_BOOL

如果启用了 bool 类型,则定义 _BOOL。有关更多信息,请参见 -features=[no%]bool

 

_WCHAR_T

 
 

unix

请参见交互

SPARC 

__SUN_PREFETCH=1

 
 

__SunOS_OSversion _OSversion

 
 

_ _SVR4

 
 

__sparc

 
 

_ _sun

 
 

sparc

请参见交互

 

sun

请参见交互

SPARC v9

_ _sparcv9

只限于 64 位编译模式 

x86 

i386

 
 

linux

 
 

_ _amd64

 
 

_ _gnu_ _linux_ _

 
 

_ _i386

请参见交互

 

_ _ linux

 
 

_ _ linux_ _

 
 

_ _x86 _ 64

 

如果不使用 =def,则 name 定义为 1。

交互

如果使用 +p,则不会定义 sununixsparci386

另请参见

–U