#define DOUBLE(x) 2*x则DOUBLE(1+2)的值是?要有过程,谢谢
为什么是这样的,为什么不是1+2*2?
#define 在预处理时是原样替换的,不会对顺序做出改变,先把1+2当做整体和x替换
1+2做整体不应该是2*(1+2)?
看做整体不是加括号,你这是被数学思维误导了,你可以使用编译器进行分步编译,编译出预处理文件,打开预处理文件,就可以看到编译器是如何处理预处理命令了