我想#定義頭文件頂部的一個常量,並使用該值作爲我的數組的索引大小。我收到以下錯誤:#define數組索引不起作用
Error C2059: syntax error : ']'
我很好奇爲什麼?
#define MAX_TEAMS = 20;
class Program
{
public:
int atk_val[MAX_TEAMS]; // Error!
int atk_val[20]; // Works!
}
我想#定義頭文件頂部的一個常量,並使用該值作爲我的數組的索引大小。我收到以下錯誤:#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
執行字符串替換。
請看上面的註釋 - 這是在C++世界中挖掘的更好的解決方案。 –
'靜態const int的MAX_TEAMS = 20;',而不是'#define' –
請注意,你最好使用'靜態const'作爲Captiain Obvlious指出的,甚至更好的使用標準集裝箱,而不是簡單的陣列 – user463035818
和BTW您正在定義數組的大小而不是其索引。 (是的,有時候我喜歡頭髮分叉)。如果你的程序沒有錯誤,索引不應該達到這個值;) – user463035818