gpt4 book ai didi

c - 为什么下面的程序输出 -80?

转载 作者:太空宇宙 更新时间:2023-11-04 05:51:24 25 4
gpt4 key购买 nike

    #define ABC 20
#define XYZ 10
#define XXX ABC - XYZ

main()
{
int a;
a = XXX * 10;
printf("%d\n", a);
}

我检查了 XXX 的值为 10。那为什么输出是 -80?这可能很愚蠢,但我是 c 编程的新手。

最佳答案

在你的代码中

a = XXX * 10;

相同
a = ABC - XYZ * 10;

这是

a = 20 - 10 * 10;

答案是20 -100, -80

这就是为什么通常建议在 MACRO 定义中使用括号。有点像

  #define XXX (ABC - XYZ)

是您所期望的

也就是说,托管环境中 main() 的一致性签名至少是 int main(void)

关于c - 为什么下面的程序输出 -80?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40890499/

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