[学习资料] 巧妙注释掉所有printf

[复制链接]
1380|5
 楼主| tpgf 发表于 2023-11-16 14:24 | 显示全部楼层 |阅读模式
实现如下:
#define _DEBUG_PRINTF

#ifndef _DEBUG_PRINTF
        #ifndef EMBARC_PRINTF
                #include <stdio.h>
                //#define EMBARC_PRINTF printf
                #define EMBARC_PRINTF (format,...) printf("FILE: " __FILE__ ", LINE: %d: " format "\n", __LINE__, ##__VA_ARGS__)

        #endif
#else
        #define EMBARC_PRINTF(format,...)
#endif


预定义宏:
参看:C语言再学习 – C 预处理器

__FILE__, __LINE__为ANSI C标准预定义宏。ANSI C包含的标准预定义宏有:

__LINE__:当前源代码行号;

__FILE__:当前源文件名;

__DATE__:当前的编译日期

__TIME__:当前编译时间;

__STDC__:当要求程序严格遵循ANSI C标准时该标识被赋值为1;

__cplusplus:当编写C++程序时该标识符被定义。


这样,用EMBARC_PRINTF 后所有的printf信息会按照如下格式输出:
FILE: xxx, LINE: xxx, …….
————————————————
版权声明:本文为CSDN博主「聚优致成」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_29350001/article/details/129694485

Stahan 发表于 2023-11-16 16:03 来自手机 | 显示全部楼层
预处理命令有多少啊
forgot 发表于 2023-11-17 10:42 | 显示全部楼层
其实用IDE的replace功能直接加\\也是可以的,我就这样干过
Jacquetry 发表于 2023-11-20 10:23 来自手机 | 显示全部楼层
没看懂怎么操作的
AloneKaven 发表于 2023-11-21 09:58 来自手机 | 显示全部楼层
预处理指令还有好多
Bowclad 发表于 2023-11-23 15:00 来自手机 | 显示全部楼层
预处理指令也是很常用的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2384

主题

17638

帖子

21

粉丝
快速回复 在线客服 返回列表 返回顶部