#define数组索引无法正常工作

时间:2015-07-10 11:14:42

标签: c++ arrays macros

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

  

错误C2059:语法错误:']'

我好奇为什么?

#define MAX_TEAMS = 20;

class Program
{
  public:

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

3 个答案:

答案 0 :(得分:4)

#define MAX_TEAMS = 20;替换为

#define MAX_TEAMS 20

以当前形式,代码int atk_val[MAX_TEAMS];将扩展为

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

因此您看到错误消息。

永远记住,MACRO 不是变量。

答案 1 :(得分:1)

以这种方式定义符号时:

#define MAX_TEAMS = 20;

您将MAX_TEAMS定义为替换为= 20;

答案 2 :(得分:1)

更改

 #define MAX_TEAMS = 20;

#define MAX_TEAMS  20

#define执行字符串替换。