use*_*104 6 c language-lawyer conditional-statements
例如a > b,我们知道C中的条件导致0或1.如果我们想在表达式中直接使用这个0/ 1值,例如1 - (a > b),我们应该假设它是有符号的或无符号的(因为它可以产生差异)表达式)?标准对此有何看法?
所有关系运算符的结果类型是int:
C11§6.5.8关系运算符
如果指定的关系为真且如果为假,则每个运算符
<(小于),>(大于),<=(小于或等于)和>=(大于或等于)将产生.结果是int类型.10
所以类型1 - (a > b)也是int签名类型.
标准很明确。所有关系运算符(包括相等和不相等)的计算结果为 0 或 1,它们是int类型。
a > b如果a大于b,则计算为 1,否则为0。
1 - (a > b)因此是一个类型为 的表达式int。
| 归档时间: |
|
| 查看次数: |
114 次 |
| 最近记录: |