computer:c:tips:predifined_macros
这是本文档旧的修订版!
预定义宏(Predifined macros)
标准C预定义了一些宏,宏名以双下划线开始,以双下划线结束。这些宏不能用#undef取消定义。
宏 | 值 |
---|---|
__LINE__ | 当前行在源文件中的行号(十进制表示)。 |
__FILE__ | 当前的源文件名。 |
__DATE__ | 编译时的日历日期(calendar date),由asctime()产生。 |
__TIME__ | 编译时的时间,由asctime()产生。 |
__STDC__ | 当且仅当编译器符合ISO标准时(标准C),值为1。 |
__STDC_VERSION__ | C95的值为199409L,C99的值为199901L,其他情况的值为未定义。 |
__STDC_HOSTED__ | (C99新增)如果编译器是hosted实现,值为1;如果是freestanding实现,则为0。 |
__STDC_IEC_559__ | (C99新增)如果浮点实现遵从IEC 60559,值为1;其他情况的值为未定义。 |
__STDC_IEC_559_COMPLEX__ | (C99新增)如果复数实现遵从IEC 60559,值为1;其他情况的值为未定义。 |
__STDC_ISO_10646__ | (C99新增)wchar_t遵从ISO 10646标准的年月,用long整型常量yyyymmL表示。其他情况的值为未定义。 |
__LINE__和__FILE__在调试程序时很有用。如:
if (a != b) printf("error: line %d, file %s\n", __LINE__, __FILE__);
__DATE__和__TIME__用于记录编译的时间,在整个编译期间,这两个值保持不变。
computer/c/tips/predifined_macros.1409912387.txt.gz · 最后更改: 2014/11/01 02:02 (外部编辑)