C语言几个常见的宏定义

#line 常量 "文件名"

#line 常量

出于错误判断的目的,使编译器认为下一行源代码的行号是以十进制整型常量的形式给出的,并且当前的输入文件是由该标示符命名的,如果缺少带双引号的文件名部分,则不改变当前编译的源文件的名字

#error 错误标记

使该预处理器打印包好该几号序列的诊断信息

下面几个是不能取消定义和重新定义的几个标示符

__LINE__ 包含当前源文件行数的十进制常量
__FILE__ 包含正在被编译的源文件名字的字符串的值
__DATE__ 包含编译日期的字符串 形式位:"Mmm dd yyyy"
__TIME__ 包含编译时间的字符串 形式为:"hh:mm:ss"
__STDC__ 整型常量1,只有在遵循标准的实现中该标识符才被定义
__func__ 执行的函数名
__FUNCTION__ 执行的函数名,和上面这个一样作用

这是一个demo

#include <stdio.h>
int main(int argc, const char * argv[]) {
    printf("%s\n",__FILE__);
    printf("%s\n",__DATE__);
    printf("%s\n",__TIME__);
    printf("%d\n",__STDC__);
    printf("%s\n",__func__);
    printf("%s\n",__FUNCTION__);
    printf("%d\n",__LINE__);
#line 12
    printf("%d\n",__LINE__);
#pragma ssss
    printf("%d\n",__LINE__);
    /*
#error mmmmmmm
     */
    return 0;
}

输出如下

/Users/Damon/Desktop/testc/testc/main.c
Dec  9 2015
16:15:38
1
main
main
17
12
14
Program ended with exit code: 0

Last modification:January 1st, 1970 at 08:00 am
如果看了这个文章可以让你少加会班,可以请我喝杯可乐
已打赏名单
微信公众号

Leave a Comment