打印
[学习资料]

巧妙注释掉所有printf

[复制链接]
969|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 | 只看该作者
没看懂怎么操作的

使用特权

评论回复
5
AloneKaven| | 2023-11-21 09:58 | 只看该作者
预处理指令还有好多

使用特权

评论回复
6
Bowclad| | 2023-11-23 15:00 | 只看该作者
预处理指令也是很常用的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1536

主题

14520

帖子

9

粉丝