我想用预定义的常量在结构中声明一个数组,但是它给了我这个错误:期望a']'
#define MAX_SZAMJEGY 200;
struct szam {
int szj[MAX_SZAMJEGY];
bool negative;
};
答案 0 :(得分:5)
宏扩展为
int szj[200;];
这是无效的C ++代码。
删除;来自#define MAX_SZAMJEGY 200;
答案 1 :(得分:4)
首选的C ++解决方案是使用常量而不是宏。这样你就不会出现分号问题,并且还带来了许多其他好处。方法如下:
(C ++ 98):
static const size_t MAX_SZAMJEGY 200;
struct szam {
int szj[MAX_SZAMJEGY];
bool negative;
};
(C ++ 11)
static constexpr size_t MAX_SZAMJEGY=200;
struct szam {
int szj[MAX_SZAMJEGY];
bool negative;
};
当你使用它时,如果你正在使用C ++ 11,你也可以用C ++ std::array
替换C风格的数组。虽然它没有太大差别,但使用起来会稍微方便一些。
答案 2 :(得分:2)
试
#define MAX_SZAMJEGY 200
而不是
#define MAX_SZAMJEGY 200;
(分号进入宏)