读书人

宏展开的有关问题

发布时间: 2012-05-05 17:21:10 作者: rapoo

宏展开的问题
如何根据宏的参数判断展开类型,例如
定义了宏_SAVE_NODE(nodeType, nodeName)
我想要根据nodeType的类型(如BOOL,INT,FLOAT)分别展开为:
SAVE_NODE_BOOL, SAVE_NODE_INT, SAVE_NODE_FLOAT
改怎么写?
求高手解答!

[解决办法]
## 连一下不就行了么
[解决办法]

#define _SAVE_NODE(nodeType, nodeName) nodeType ## nodeName

_SAVE_NODE(BOOL,SAVE_NODE)


[解决办法]
#define _SAVE_NODE(nodeType, nodeName) _SAVE_NODE_##nodeType##_##nodeName
[解决办法]

探讨
我的SAVE_NODE_BOOL, SAVE_NODE_INT, SAVE_NODE_FLOAT这三个宏也是有参数的,
例如:
我调用SL_NODE(_BOOL, nodeName),希望通过
#define SL_NODE(nodeType, nodeName) SAVE_NODE(nodeType, nodeName)
#define SAVE_NODE(nodeType, nodeN……

[解决办法]
SL_NODE(BOOL,a);
展开结果:
{ doSomething(m_ba);};

//g++4.6

读书人网 >C语言

热点推荐