【发布时间】:2011-12-18 06:12:33
【问题描述】:
我看到一篇文章提到 !0 的结果取决于编译器。结果可以是 1 或 FF 或 FFFF 等等。
至于 C99 标准 6.5.3.3 一元算术运算符,
逻辑否定运算符的结果!如果其操作数的值比较,则为 0 不等于 0,如果其操作数的值比较等于 0,则为 1。结果的类型为 int。 表达式 !E 等价于 (0==E)。
真的依赖编译器吗?
【问题讨论】:
-
你没有引用标准,说它评估为 1?!所以它应该是平台/编译器独立的。也许那篇文章的意思是说
~0是平台相关的。 -
你是从哪里看到那篇文章的?