输出结果为什么是10

#include <stdio.h>
#define ADD(x) x+x
int main()
{	int m=1,n=2,k=3,sum ;
	sum = ADD(m+n)*k ;
	printf("%d",sum);
     return 0;
}


yuantongxin
浏览 1150回答 1
1回答

loser_by

C里面的宏定义在代码中调用时只是一个简单的文本替换,不会识别类型。所以以上程序的运行其实是  1+2+1+2*3=10,建议用typedef替换define
打开App,查看更多内容
随时随地看视频慕课网APP