小编FMe*_*etr的帖子

宏生成错误的数字

我无法理解为什么以下代码打印2而不是1 ...

#include <stdio.h>
#define ABS(x) ((x) < 0) ? -(x) : (x)
int main()
{
    printf("%d", ABS(ABS(-2)-(ABS(-3))));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这个问题在我们的考试中,我回答输出是1但是在编译之后我得到2 ...有人请解释实际表达的内容...提前谢谢.

c macros

6
推荐指数
1
解决办法
84
查看次数

标签 统计

c ×1

macros ×1