我需要帮助,以了解下面代码中的TWO的替换

问题描述 投票:0回答:1

我通过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; 
    }
c
1个回答
0
投票

只需自行进行替换。

i = i - 2 * TWO;

i = i - 2 * ONE + ONE;

所以你有

i = 2 - 2 * 1 + 1;

所以我将得到值1。

如果要获得等于-2的结果,则像这样重写宏

#define  TWO    ( ONE + ONE )
© www.soinside.com 2019 - 2024. All rights reserved.