一、前言
在后台程序运行出问题时,需要查看详尽的日志,C语言提供记录日志触发点文件名、行号、函数名的方法,关键是利用C99新增的预处理标识符__VA_ARGS__;先介绍几个编译器内置的宏定义,这些宏定义不仅可以帮助我们完成跨平台的源码编写,灵活使用也可以巧妙地帮我们输出非常有用的调试信息。
二、ANSI C标准宏
__LINE__ // 在源代码中插入当前源代码行号 __FILE__ // 在源文件中插入当前源文件名 __DATE__ // 在源文件中插入当前的编译日期 __TIME__ // 在源文件中插入当前编译时间 __STDC__ // 当要求程序严格遵循ANSI C标准时该标识被赋值为1 __cplusplus // 当编写C++程序时该标识符被定义 _WIN32 // 在程序运行在windows系统上被定义位1 linux // 在程序运行在linux系统上被定义位1 __x86_64__ // 在程序运行在64位系统上被定义位1 __i386__ // 在程序运行在32位系统上被定义位1 __VA_ARGS__ // 是一个可变参数的宏,这个可宏是新的C99规范中新增的, // 目前似乎gcc和VC6.0之后的都支持(VC6.0的编译器不支持)。