宏替换意思就是原样替换
#include <stdio.h>
#define SQR(X) X*X
main()
{
int a = 16, k = 2, m = 1;
a /= SQR(k + m) / SQR(k + m);
// a /= k + m * k + m / k + m * k + m;
printf("%d\n", a);
return 0;
}
可以看到宏替换后,第 7 行和第 9 行,意思相同。
补充:带参宏定义
#define 宏名(形参表) 字符串
#define M(y) y*y+3*y //宏定义
int k;
k = M(5); //宏调用
k = 5*5+3*5; //宏替换