我通过Code :: Blocks运行了它,并向我显示了最终答案1.然后在“ i = i-2 * TWO”语句中替换两个,为什么这样?
代码是我要解决/理解的家庭作业的一部分:
#include <stdio.h>
#define ONE 1
#define TWO ONE + ONE
int main(void) {
int i = 2;
i = i - 2 * TWO;
printf("%d\n", i);
return 0;
}
只需自行进行替换。
i = i - 2 * TWO;
是
i = i - 2 * ONE + ONE;
所以你有
i = 2 - 2 * 1 + 1;
所以我将得到值1。
如果要获得等于-2的结果,则像这样重写宏
#define TWO ( ONE + ONE )