预处理的小问题
用了宏定义定义了 N,M,NUM,为什么输出为 3 8呢? NUM为什么等于8???#include <stdio.h>
#define N 2
#define M N+1
#define NUM (M+1)*M/2
int main(void)
{
int i,n=0;
printf("%d %d\n",M,NUM);
}
#include <stdio.h> #define N 2 #define M N+1 #define NUM ((M)+1)*(M)/2 int main(void) { printf("%d %d\n",M,NUM); return 0; }注意括号,宏定义在预编译阶段进行替换