标签:__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