gpt4 book ai didi

C99 单行比较语法快捷方式

转载 作者:行者123 更新时间:2023-11-30 18:22:36 24 4
gpt4 key购买 nike

我没有方便的编译器来自己检查这一点。

  1. 版本 1(如下)中的代码在 C C99 中有效吗?编译运行正常吗?
  2. 它在逻辑上与版本 2 中的代码等效吗?

版本 1:

int a, b, c, d;

... some code to set the above variables ...

if (a != b != c != d)
//Do something

... rest of code ...

版本 2:

int a, b, c, d;

... some code to set the above variables ...

if ((a != b) && (a != c) && (a != d) && (b != c) && (b != d) && (c != d))
//Do something

... rest of code ...

最佳答案

由于 != 是从左到右关联的:

if (a != b != c != d)

可以翻译为

if (((a != b) != c) != d)

但结果不是你所期望的,例如,给定 a = 100, b = 200;,则 a != b0 code>,因为任何 true 值都会被计算为 1, false 值都会被计算为 0。所以对于你的问题:

Is the code in Version 1 (below) valid in C C99? Will the it compile and run ok? Is it logically equivalent to the code in Version 2?

它是有效的,但它不等同于版本 2 中的代码。

关于C99 单行比较语法快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18093004/

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