C 编译器能否保证 (bool)true 等于 (int)1?
问题出现:是否可以假设 (bool) true 等于 (int)1,无论 C 编译器是什么使用过?
答案:
是的,这个假设对于所有 C 编译器都成立。表达式中的强制转换是多余的。 bool 值直接转换为 int,按照积分提升的要求,得到值为 1 的 int。
参考:
根据 4.7 [conv .integral] / 4, “如果源类型为 bool...true 会转换为 1。”
以上是C 是否保证 `(bool)true` 等于 `(int)1`?的详细内容。更多信息请关注PHP中文网其他相关文章!