您的位置:首页 > 其它

__FILE__ __LINE__ __DATE__ __TIME__宏

2015-01-06 14:41 302 查看
项目中总是看到__FILE__ __LINE__的玩意,想起来曾经在Linux内核源码中也看到过类似的东西。抽时间查了查这玩意是什么。

简单而言。是ANSI C预定义的宏。有这么几个,注意前后都是两个下划线

__FILE__ :表示源文件名称(不是可执行文件),字符串类型

__LINE__:源码行数,整形

__DATE__:编译日期,字符串

__TIME__:编译时间,字符串

一般都是在生成日志文件的时候用,常常还结合可变参数函数的使用。关于可变参数的问题,请看我另一篇文章C语言可变参数函数

比如你想得到源文件名字,就可以用printf(__FILE__);编译器自动将其替换为字符串。

printf("Line is %d",__LINE__);

项目中常见的用法是这样

void LogTransMsg(char * errfile,int errline,char *strMsg, ...)

然后调用形式如下

LogTransMsg(__FILE__, __LINE__, "Error message:%s id=%d\n", ErrorBuf,ErrorID);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: