返回信息流各位大牛好!
我想实现一个宏,将调试宏封装成更易读的宏,方便调试程序的编写。
预想如下:
#define DEBUG_DECLARE #define DEBUG_MODE
希望代码中出现DEBUG_DECLARE的时候,会被替换成#define DEBUG_MODE
通过在Visual Studio 2010中的测试,我发现这种写法是错误的。
查了http://gcc.gnu.org/onlinedocs/gcc-4.1.0/cpp.pdf,也没有相关的语法。
在此请教并想与各位讨论,如何才能实现这样的功能,即把一个宏定义语句替换成为另一个宏定义语句。
或者有没有其他的办法,可以帮助实现程序调试相关控制代码的简写。
谢谢各位!
ps:现在的调试方法是
#define DEBUG_MODE
//code...
#ifdef DEBUG_MODE
//debug code...
#endif //DEBUG_MODE
这是一条镜像帖。来源:北邮人论坛 / cpp / #38605同步于 2010/4/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[讨论]#define DEBUG_DECLARE #define DEBUG_MODE
bupteinstein
2010/4/27镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
这个真不知道,也没见过……不过写全了也只是多了#define几个字符加一个tab或空格啊
【 在 bupteinstein (相期以茶) 的大作中提到: 】
: 各位大牛好!
: 我想实现一个宏,将调试宏封装成更易读的宏,方便调试程序的编写。
: 预想如下:
: ...................
终于有人搭理我了,呵呵,谢谢!
我一个程序代码中可能有几十个地方需要用到这样的调试语句,写全了的话会造成代码特别混乱。
而且,就是这几个字符和空格的书写,也有两个问题:1. 项目组中总是有人会写错的;2. 写出来的意义不明确,乱花渐欲迷人眼啊!
不过还是谢谢回答!
【 在 FadeToBlack 的大作中提到: 】
: 这个真不知道,也没见过……不过写全了也只是多了#define几个字符加一个tab或空格啊
try this
#ifdef xxx
#define ENTER_XXX if(TRUE){
#define LEAVE_XXX }
#else
#define ENTER_XXX if(FALSE){
#define LEAVE_XXX }
#endif
ps. 原来不是鹿丸啊
【 在 bupteinstein (相期以茶) 的大作中提到: 】
: 终于有人搭理我了,呵呵,谢谢!
: 我一个程序代码中可能有几十个地方需要用到这样的调试语句,写全了的话会造成代码特别混乱。
: 而且,就是这几个字符和空格的书写,也有两个问题:1. 项目组中总是有人会写错的;2. 写出来的意义不明确,乱花渐欲迷人眼啊!
: ...................
不过,个人不建议这么做
不带参数的宏看起来不明显,而且通常不带参数的宏结尾都不需要加分号,这正好是一票代码格式化软件的盲区。
所以,直接把那些#ifdef DEBUG都写错的人抓出来干一顿吧
【 在 FadeToBlack (拜萝卜教 | [敏感词]NMB) 的大作中提到: 】
: try this
: #ifdef xxx
: #define ENTER_XXX if(TRUE){
: ...................
非常感谢,这个不错。
【 在 FadeToBlack 的大作中提到: 】
: try this
: #ifdef xxx
: #define ENTER_XXX if(TRUE){
: ...................