在C语言编程中,有五个符号,它们的值在编译时,才由编译器替换成常量值,对程序员非常有用。
1、__STDC__
如果编译器支持标准C语言,则将__STDC__变为1,否则变为0。
例如下面的代码:
#include int main(){ if (__STDC__) { printf("Compiler supports standard C."); } else { printf("Compile does not support standard C."); } return 0;}
使用gcc编译后运行的情况为:
Compiler supports standard C.
2、__DATE__和__TIME__
编译器在编译程序时,碰到__DATE__,会替换成当前的日期,碰到__TIME__,会替换成当前的时间。
例如下面的代码:
#include int main(){ printf("Date: %s, time: %s", __DATE__, __TIME__); return 0;}
编译之后的运行结果是:
Date: May 2 2020, time: 01:05:58
__DATE__和__TIME__常常用来标识软件的生成时间。
3、__FILE__和__LINE__
编译器在编译程序时,碰到__FILE__,会替换成源文件名,碰到__LINE__,会替换成所编译代码在当前源文件中的行号。
例如下面的代码:
#include int main(){ printf("%s (%d), hello.", __FILE__, __LINE__); return 0;}
程序编译之后运行的结果为:
test.c (6), hello.