宏不能用來計算,宏只能簡單代替,不能做計算,不能做計算,不能做計算,重要的事情說三遍。
以下程序
#include<stdio.h>
#define SUB(a) (a)-(a)
main(){
int a=2,b=3,c=5,d;
d=SUB(a+b)*c;
printf("%d\n",d);
}
運行後的結果是:
d=SUB(a+b)*c=SUB(2+3)*5=(2+3)-(2+3)*5=5-25=-20
以下程序
# include<stdio.h>
#define f(x) x*x*x
main(){
int a=3,s,t;
s=f(a+1);t=f((a+1));
printf("%d,%d\n",s,t);
}
結果是:10,64