#include <stdio.h>#define SQR(y) y*y
int main(){int a, b=4;a=SQR(b+1);printf("a=%d",a);
return 0;
}
为啥a等于9而不是25
3+1*1+3。 它不会自己带括号
a=SQR(b+1)变为a=b+1b+1此时b=4所以a=4+14+1=9
SQR(b+1)是替换成了 b+1*b+1=4+4+1=9,要25的话是#define SQR(y) (y)*(y)