c语言宏定义一个问题

为什么z和c的值是5和7。具体运算过程是什么的

宏定义——原模原样展开(替换)
# define X 5(编译器见到X就换成5再继续编译)
# define Y X+1(编译器见到Y就换成X+1,也就是5+1,再继续)
Z,C同理
那么Z=(5+1*5)/2 = 5
C = 5+1*5/2 = 7(整型)追问

c为什么是7了

追答

printf("%d\n",C);//这句把C当做整型输出
你可以换成printf("%f\n",C);再试试

追问

懂了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-06-04
预定义只作简单的替换,即z=(x+1*x)/2=5,c以此类推。
相似回答