单片机调试 --- 调试信息打印
#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 提供的预置宏:


浙公网安备 33010602011771号