gpt4 book ai didi

c - 产生错误数字的宏

转载 作者:太空狗 更新时间:2023-10-29 17:20:30 25 4
gpt4 key购买 nike

我不明白为什么下面的代码打印 2 而不是 1...

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

这个问题出现在我们的考试中,我回答输出是 1,但编译后我得到 2...有人能解释一下表达式的实际作用吗...提前致谢。

最佳答案

你忘记了外括号,试试这个:

#define ABS(x) (((x) < 0) ? -(x) : (x))

关于c - 产生错误数字的宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33655912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com