printk开关控制
2017-04-26 17:43
381 查看
为了调试控制打印输出方便
故对printf函数做如下处理
#ifdef PRINT_MLKK
#define printm(info) printf(info)
#else
#define printm(info)
#endif
#ifdef PRINT_MLKK
#define printm(format,...) printf("FILE:"__FILE__",LINE:%d:"format"\n",__LINE__,##_VA_ARGS__)
#else
#define printm(format,...)
#endif
对于方法一,
printm(info) 只支持一个参数替换,因此不能打印变量 如 printm(“%d”,i);输出为错误数值。即只可以输出打印固定字符串。
方法二很好的解决了这个问题。
ANSI C标准中有几个标准预定义宏(也是常用的):
__LINE__:在源代码中插入当前源代码行号;
__FILE__:在源文件中插入当前源文件名;
__DATE__:在源文件中插入当前的编译日期
__TIME__:在源文件中插入当前编译时间;
故对printf函数做如下处理
方法一:
#define PRINT_MLKK#ifdef PRINT_MLKK
#define printm(info) printf(info)
#else
#define printm(info)
#endif
方法二:
#define PRINT_MLKK#ifdef PRINT_MLKK
#define printm(format,...) printf("FILE:"__FILE__",LINE:%d:"format"\n",__LINE__,##_VA_ARGS__)
#else
#define printm(format,...)
#endif
备注:
通过 PRINT_MLKK 即可控制打印输出开关对于方法一,
printm(info) 只支持一个参数替换,因此不能打印变量 如 printm(“%d”,i);输出为错误数值。即只可以输出打印固定字符串。
方法二很好的解决了这个问题。
附:
编译器内置宏:ANSI C标准中有几个标准预定义宏(也是常用的):
__LINE__:在源代码中插入当前源代码行号;
__FILE__:在源文件中插入当前源文件名;
__DATE__:在源文件中插入当前的编译日期
__TIME__:在源文件中插入当前编译时间;
相关文章推荐
- mui框架中switch开关通过js控制开或者关状态时小圆点不动问题
- jquery控制背景音乐开关与自动播放提示音的方法
- DIY远程控制开关(tiny6410+LED+yeelink+curl)
- 第75篇一对多之合并开关声音按钮及获取当前按钮id及一个按钮控制两个函数
- Java中log4j控制写入日志开关
- 【Unity快速实现小功能】声音控制三部曲之(三)—— 声音、音效开关以及音量大小控制
- ubuntu下(wifi)硬件开关控制的设置
- 制作手机远程控制开关
- Android - 智能 wifi 插座控制开关
- 嵌入式成长轨迹38 【Zigbee项目】【CC2430基础实验】【按键控制开关】
- C# 通过热键控制显示器开关
- Unity 使用 dll 来控制log开关
- InCallActivity 中speaker的开关控制
- 代码控制数据流量开关
- /proc/sys/kernel/printk 控制log的输出
- jquery控制背景音乐开关与自动播放提示音的方法
- iOS_17_控制开关_TabBarController_由storyboard道路
- 通过rs232串口控制投影机定时开关
- 命令行控制蓝牙开关
- 安卓程序如何控制闪光灯开关