表示语句所在文件,函数,行号,日期和时间宏
头文件:
系统宏无须头文件即可使用
1.
表示语句所在文件
__FILE__
2.
表示语句所在函数
__FUNCTION__
3.
表示语句所在行号
__LINE__
4.
表示此刻日期
__DATE__
5.
表示此刻时间
__TIME__
自定义调试宏
示例:
#define DBG_PRINTF(format, args...) \
do \
{ \
printf("<%s %s.c %d %s %s>",__FILE__,__FUNCTION__,__LINE__,__DATE__,__TIME__); \
printf(format, ##args); \
}while(0)
int main ()
{
DBG_PRINTF("调试\n");
DBG_PRINTF("x = %d\n",3);
return 0;
}
其中第 6
行代码中的
##
的作用是为了让宏使用时如果没有指定
args
参数,那么不会发生错误,因为如果没有写##,
那么当程序调用宏没有指定后面的参数时
,
例如DBG_PRINTF(“nihao”),就会被替换为
printf(“nihao”,);
多了一个逗号,发生错误,加了##
就可以避免这种错误,至于
##
和
do{}while(0)
写法的作用请观看第二节。