__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);
简单而言。是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__,__FUNCTION__调试宏
- __FILE__,__LINE__,__DATE__,__TIME__用途
- __FILE__,__LINE__,__DATE__,__TIME__, __FUNCTION__
- C语言中预定义符 __FILE__, __LINE__, __FUNCTION__, __DATE__, __TIME__ 的使用演示
- C/c++几个预定义的宏:__DATE__,__TIME__,__FILE__,__LINE__
- 【随笔】预定义符号_FILE__,__LINE__,__DATE__,__TIME__的使用
- 【随笔】预定义符号_FILE__,__LINE__,__DATE__,__TIME__的使用
- C/c++几个预定义的宏:__DATE__,__TIME__,__FILE__,__LINE__
- C语言中预定义符 __FILE__, __LINE__, __FUNCTION__, __DATE__, __TIME__
- __DATE__,__TIME__,__FILE__,__LINE__调用
- __DATE__,__FILE__,__LINE__,__TIME__,__FUNCTION__
- __FILE__,__LINE__,__DATE__,__TIME__,__FUNCTION__
- 预处理标识符: __LINE__ __FILE__ __DATE__ __TIME__ ##
- __FILE__,__LINE__,__DATE__,__TIME__
- C程序调试利器。__DATE__ ,__TIME__,__FILE__,__LINE__,__FUNCTION__
- C语言中预定义符 __FILE__, __LINE__, __FUNCTION__, __DATE__, __TIME__ 的使用演示
- C标准中预定义的宏,__DATE__,__TIME__,__FILE__,__LINE__,__func__
- 关于__FILE__,__LINE__,__DATE__,__TIME__ 用于调试
- __DATE__,__FILE__,__LINE__,__TIME__,__FUNCTION__宏定义
- C语言 __FILE__, __LINE__,__DATE__,__TIME__