首先先抛出结论: 以 const 或者 enum 替换 #define 常量定义 以 inline 代替某些看起来像是函数的宏定义 以 const 或者 enum 替换 #define 常量定义 在 C 代码中,我们可能会用以下宏定义去定义一个常量: #define N 2 这种方法只是在预编译的时候进行了字符替换,也就是会将所有 N 出现的地方替换为 2。在预编译之后,程序中将不会再有 N 这个标志。N不是变量,并不占内存单元,容易出错。比如下面这个例子: int n = 2; #define N1 n + n #define N2 N1 - N1