这个题的话,我们要理解宏定义的执行方式
比如
#define two(x) x+x
two(x)乘2
编译后是:x+x乘2
宏替换是一种暴力替换原则,它只暴力替换要替换的元素,不会去思考该位置的运算,two(x)*2首先要拆解成两个部分:1:two(x)2:乘2
1部分替换后为x+x ,2部分不变
此时语句为x+x 2,根据运算规则,所以为15.
这里考察的是define的定义只是等效替代,你这个two(5)2=5+52=15,
你可以运行一下(two(5))*2 ,然后看一下结果,应该就知道答案了。