#define 数组索引不起作用

#define array index not working

我正在尝试在头文件的顶部#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;];
//          ^   ^

因此您看到了错误消息。

永远记住宏是不是变量。

当您以这种方式定义符号时:

#define MAX_TEAMS = 20;

您定义 MAX_TEAMS 替换为 = 20;

改变

 #define MAX_TEAMS = 20;

#define MAX_TEAMS  20

#define 进行字符串替换。