2015-07-10 80 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++世界中挖掘的更好的解決方案。 –