您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> C/C++ >> 宏参数中有括号,编译出错

宏参数中有括号,编译出错

来源:网络整理     时间:2016/8/28 16:38:48     关键词:

关于网友提出的“ 宏参数中有括号,编译出错”问题疑问,本网通过在网上对“ 宏参数中有括号,编译出错”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 宏参数中有括号,编译出错
描述:

我有一个模板类,可以继承这个模板类实现好多类,子类它们差不多都有相同的代码实现部分,我想写个宏
想把类似这样的代码

int MyType::array[] = {1,2,3};

改成用宏
#define DEFINE_MEMBER (TYPENAME, VALUE) \
int TYPENAME::array[] = VALUE;
DEFINE_MEMBER (MyType, {1,2,3})

宏里有{1,2,3};会报错,因为它认逗号,第二个参数直接把"{1"输进去了,怎么办呢?
解决方案1:

这样肯定编译不过!看这样能不能满足你要求
int g_DefData[]={1,2,3};
#define DEFINE_MEMBER(TYPENAME, VALUE) int *TYPENAME = VALUE;
DEFINE_MEMBER( A, g_DefData);
DEFINE_MEMBER( B, g_DefData);
DEFINE_MEMBER( C, g_DefData);

解决方案2:

首先,你要知道{1,2,3}在C++中英文叫法是什么?
其次,你要会用英文搜索引擎,然后,你就能找到答案


以上介绍了“ 宏参数中有括号,编译出错”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3637164.html

相关图片

相关文章