2015-07-10 89 views
1

我想#定义头文件顶部的一个常量,并使用该值作为我的数组的索引大小。我收到以下错误:#define数组索引不起作用

Error C2059: syntax error : ']'

我很好奇为什么?

#define MAX_TEAMS = 20; 

class Program 
{ 
    public: 

    int atk_val[MAX_TEAMS]; // Error! 
    int atk_val[20]; // Works! 
} 
+8

'静态const int的MAX_TEAMS = 20;',而不是'#define' –

+4

请注意,你最好使用'静态const'作为Captiain Obvlious指出的,甚至更好的使用标准集装箱,而不是简单的阵列 – user463035818

+0

和BTW您正在定义数组的大小而不是其索引。 (是的,有时候我喜欢头发分叉)。如果你的程序没有错误,索引不应该达到这个值;) – user463035818

回答

4

#define MAX_TEAMS 20 

更换#define MAX_TEAMS = 20;在目前形式的代码int atk_val[MAX_TEAMS];将扩大到

int atk_val[= 20;]; 
//  ^^

就这样被你看到的错误消息。

一定要记住,MACROs是而不是变量。

1

当你定义这样的符号:

#define MAX_TEAMS = 20; 

定义MAX_TEAMS= 20;

1

变化来代替

#define MAX_TEAMS = 20; 

#define MAX_TEAMS 20 

#define执行字符串替换。

+0

请看上面的注释 - 这是在C++世界中挖掘的更好的解决方案。 –