码迷,mamicode.com
首页 > 其他好文 > 详细

__FILE__ __LINE__ __DATE__ __TIME__宏

时间:2015-01-06 15:36:55      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:__file__   __line__   __time__   __date__   可变参数   

项目中总是看到__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);

__FILE__ __LINE__ __DATE__ __TIME__宏

标签:__file__   __line__   __time__   __date__   可变参数   

原文地址:http://blog.csdn.net/geqiandebei/article/details/42459039

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!