首页 新闻 会员 周边

define宏定义中,能解释“#”字符?

0
悬赏园豆:20 [已解决问题] 解决于 2012-03-20 13:53

譬如,我想将

#pragma message("XXXXXXXXXX“)

定义成宏 #define……不知可行乎?

c++
木愚的主页 木愚 | 初学一级 | 园豆:20
提问于:2012-03-19 16:22
< >
分享
最佳答案
1

windows下提供给你一个:

#define fpc_todo_2(x)    #x
#define fpc_todo_1(x) fpc_todo_2(x)
#define target_(x) "["#x"] "
#define fpc_todo(target,desc) message(__FILE__ "(" fpc_todo_1(__LINE__) "): @TODO " target_(target) #desc)
#define fpc_fix(target,desc) message(__FILE__ "(" fpc_todo_1(__LINE__) "): @FIXME" target_(target) #desc)
#define fpc_warn(target,desc) message(__FILE__ "(" fpc_todo_1(__LINE__) "): @WARN " target_(target) #desc)

用的时候还是需要使用#pragma,我曾经尝试去掉#pragma直接用宏的方式定义,不过应该是做不到的,牵涉到#字符的表示,C里面应该没法实现这种宏定义。

使用的时候,也就是为了开发的时候提醒一下:

#pragma fpc_todo(wanghui,"添加支持:在FPCDisplayObject列表中进行冒泡操作.")
#pragma fpc_fix(wanghui,"暂时不支持PVR,建立PVR文件对应的纹理基础类型")
收获园豆:20
zsounder | 老鸟四级 |园豆:2819 | 2012-03-19 16:50

十分感谢你的回答,正合我意啊

根据你的回答,做了些许改动。

#define fpc_todo_2(x)    #x
#define fpc_todo_1(x) fpc_todo_2(x)
#define target_(x) "["#x"] "
#define fpc_todo(target,desc) message(__FILE__ "(" fpc_todo_1(__LINE__) ") : warning : @TODO " target_(target)##desc)
#define fpc_fix(target,desc) message(__FILE__ "(" fpc_todo_1(__LINE__) ") : warning : @FIXME " target_(target)##desc)
#define fpc_warn(target,desc) message(__FILE__ "(" fpc_todo_1(__LINE__) ") : warning : @WARN " target_(target)##desc)

 

这样,在Error List里就会出现如下警告:

望对你有些许帮助,互助愉快。

木愚 | 园豆:20 (初学一级) | 2012-03-20 13:53

@木愚: 这种方式有个问题,一般我们在实际项目中会将编译器的警告级别提升到最高,将所有的警告视作错误来处理,你那样添加会在警告中给出提示,在我这里不大合适,呵呵,不过也挺好的。

zsounder | 园豆:2819 (老鸟四级) | 2012-03-20 18:19
其他回答(1)
0

试试就知道了。

悟行 | 园豆:12559 (专家六级) | 2012-03-19 16:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册