Поскольку все, что не равно нулю, означает истину, но операторы >
, <
, ==
и т. д. возвращают 1
для true, мне любопытно, есть ли какие-нибудь известные компиляторы C, в которых эти операторы могут привести к значению, большему, чем 1
.
Другими словами, существует ли компилятор, в котором int i = (a==b)
; привело бы к неопределенному поведению, если бы я намеревался использовать i
не как логическое значение, а как целое число, и предполагал, что это будет либо 0
, либо 1
?