在C程序中使用#define

Oli*_*ryn 27 c c-preprocessor

我试图用来#define在我的程序中定义一个常量.我意识到我可以使用const,但我想要很好地理解#define.有人可以解释为什么以下代码不起作用,应该改为吗?

#include <stdio.h>
#define M 20;
typedef int Marray_t[M][M]; //I can't define an M x M array

int main() {
  Marray_t A;
  int i;

  for (i = 0; i < M; ++i) { //Can't iterate up to M
    A[i] = i;
  }

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

nab*_*yan 65

你必须删除;之后20,像这样

#define M 20
Run Code Online (Sandbox Code Playgroud)