C++中用宏定义注释

摘要:本文介绍了如何用宏来定义注释,以控制是否需要注释掉cout。

1. 起心动念

在调试程序的时候,经常需要用cout输出一些内容,以判断程序是否运行正常,以及进行到哪一步了。但是在程序发布的时候,又不需要这些cout的内容,这时候就需要手动把cout内容删除或者注释掉。很繁琐,尤其是你注释完了之后发现还需要调试,就又得解注释。
下面提供一种用一条宏定义语句实现注释或解注释所有cout语句的方法。

2. 宏定义控制cout

首先,用宏定义cout,并将程序中所有cout改成MY_COUT

#define MY_COUT cout

其次,如果想注释掉所有cout,则重新定义MY_COUT为:

#define MY_STUFF
#define MY_COUT /MY_STUFF/

解释:

  1. 直接把MY_COUT定义成 #define MY_COUT //是不行的,因为“注释比宏定义先被处理”。也就是说,如果你这么定义,那么//被解释成注释,MY_COUT的值是空的。
  2. MY_STUFF的目的就是为了防止/MY_STUFF/被解释成注释符号
  3. MY_STUFF定义成空的,保证了MY_COUT会被替换成我们想要的//

3. 完整实现

另一个问题是,如果你cout的东西太多,前面的东西就会被冲掉。比如说你晚上跑一个大程序,第二天可能会发现想看到的输出信息已经没有了。解决办法就是写日志文件。
综合上面说的,用于控制输出信息的宏定义如下:

  1. 控制台输出
#define MY_COUT cout
  1. 文件输出
#define MY_COUT myFileStream
ofstream myFileStream;//全局变量,在使用之前需要打开文件,如myFileStream.open("log.txt").
  1. 不输出
#define MY_STUFF
#define MY_COUT /MY_STUFF/

4. 总结

本文介绍了如何用一条宏定义语句控制提示信息往控制台输出、文件输出,还是不输出。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值