标准预定义宏基本适用于所有的编译器(过于旧的编译器除外),名字都以双下划线开头。
1. __FILE__
当前源代码文件名的字符串名称,其中路为预处理器所指定的路径,与执行路径无关。
2. __LINE__
录前源代码的行号,包括空行。
__FILE__和__LINE__主要用于bug调试,排查错误。
3. __DATE__
编译器编译的日期,执行时显示的也是这个时期。
4. __TIME__
编译器编译的时间,而不是执行时间,每次编译的时间。
5. __STDC__
为区别ISO 标准C,在正常执行时,该宏被定义为1,C++中并不一定如此。然而预处理器会执行该标准,除非加上-traditional-cpp选项。
6. __STDC_VERSION__
C编译器版本,不支持C++和Object-C。
7. __STDC_HOSTED__
如果当前系统是"本地系统",则为1。
8. #line
用来修改__LINE__和__FILE__,例如:
#line 100 "ok"
__LINE__被修改为100,__FILE__被修改为"ok"
9. __cplusplus
用于识别是C++还是C代码,C++中对__cplusplus进行了定义。
10. __OBJC__
用于辨别是否为Object-C。
11. __ASSEMBLER__
如果是汇编语言,则值为1。
阅读(778) | 评论(0) | 转发(0) |