单片机调试 --- 调试信息打印

 

#define __debug
#ifdef __debug
#define debug(format,...)    printf("File:  "__FILE__"\nLine:  %05d\nmessage: "format"\n", __LINE__, ##__VA_ARGS__)
#else
    #define debug(format,...)
#endif

 输出结果例如:

 

说明:

1、编译器支持不定参数的宏定义,' ## '的意思是,如果可变参数被忽略或为空,预处理器( preprocessor )会去除掉它前面的那个逗号

2、编译器内置宏:

__LINE__:源代码行号;

__FILE__:当前源文件名;

__DATE__:编译日期

__FUNCTION__:函数名

编译器在进行源码编译的时候,会自动将这些宏替换为相应内容。

如下是IAR 提供的预置宏:

 

posted @ 2017-05-22 23:37  流水灯  阅读(468)  评论(0)    收藏  举报