c语言编译器:C语言编译器的预定义符号

C语言编译器预定义符号
__LINE__ 当前(源代码文件)行号 [整数]
__FILE__ 当前正在编译文件文件名 [串]
__DATE__ 当前日期以“月月 日日 年年年年”形式给出 [串]
__TIME__ 当前时间以“HH:mm:ss”格式给出 [串]
__STDC__ 如果编译器符合ANSI C标准该宏为1否则为0
__STDC_HOSTED__ 如果实现了所有C标准库该宏为1否则为0
__STDC_VERSION__ 被定义为199901L(区别编译器可能不比如我用gcc里就没有这个预定义符号)
注:这些预定义符号首尾为两个下划线如果是两个单词中间以个下划线连接
如果在源代码中使用了这些符号它们会在预处理时被转换(使用gcc编译器 -E 选项可以看到替换后值)
C标准里还在每个内预定义了个标志符: __func__
它被定义为 const char __func__="function-name";
即不能在内对__func__赋值也不能改变它所指向串(名)否则报编译
注:__func__是个标志符它在预处理阶段不被替换所以使用gcc -E 是看不到任何效果
例:test.c
{
prf("%s %s\n",__FILE__,__func__);
0;
}
输出: test.c
Tags:  c语言中的符号 c语言符号大全 c语言符号 c语言编译器

延伸阅读

最新评论

发表评论