#define数组索引不起作用
问题描述:
我想#定义头文件顶部的一个常量,并使用该值作为我的数组的索引大小。我收到以下错误:#define数组索引不起作用
Error C2059: syntax error : ']'
我很好奇为什么?
#define MAX_TEAMS = 20;
class Program
{
public:
int atk_val[MAX_TEAMS]; // Error!
int atk_val[20]; // Works!
}
答
与
#define MAX_TEAMS 20
更换#define MAX_TEAMS = 20;
在目前形式的代码int atk_val[MAX_TEAMS];
将扩大到
int atk_val[= 20;];
// ^^
就这样被你看到的错误消息。
一定要记住,MACROs是而不是变量。
答
当你定义这样的符号:
#define MAX_TEAMS = 20;
定义MAX_TEAMS
与= 20;
答
变化来代替
#define MAX_TEAMS = 20;
到
#define MAX_TEAMS 20
#define
执行字符串替换。
+0
请看上面的注释 - 这是在C++世界中挖掘的更好的解决方案。 –
'静态const int的MAX_TEAMS = 20;',而不是'#define' –
请注意,你最好使用'静态const'作为Captiain Obvlious指出的,甚至更好的使用标准集装箱,而不是简单的阵列 – user463035818
和BTW您正在定义数组的大小而不是其索引。 (是的,有时候我喜欢头发分叉)。如果你的程序没有错误,索引不应该达到这个值;) – user463035818