gpt4 book ai didi

c - 零(!0)编译器的逻辑否定是否依赖于 C?

转载 作者:太空狗 更新时间:2023-10-29 15:16:47 26 4
gpt4 key购买 nike

我看到一篇文章提到 !0 的结果依赖于编译器。结果可以是 1 或 FF 或 FFFF 等等。

至于C99标准6.5.3.3一元算术运算符,

The result of the logical negation operator ! is 0 if the value of its operand compares unequal to 0, 1 if the value of its operand compares equal to 0. The result has type int. The expression !E is equivalent to (0==E).

它真的依赖于编译器吗?

最佳答案

似乎已经回答了您自己的问题,引用了指定结果必须为 0 或 1 的标准。

因此,我只能猜测您是在询问是否所有 C 编译器都符合这方面的标准。由于我没有使用过所有编写的 C 编译器,所以我无法真正明确地回答这个问题。不过,我从未使用过或听说过能产生任何其他值(value)的产品——考虑到我多年来在这里、在 Usenet 等上闲逛,看来可能如果这样的野兽存在,我可能听说过。

编辑:可能值得注意的是,即使在 K&R1 中,它也被明确描述为生成 0 或 1 (§A.7.2):

The result of the logical negation operator ! is 1 if the value of its operand is 0, 0 if the value of its operand is non-zero.

关于c - 零(!0)编译器的逻辑否定是否依赖于 C?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7945950/

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