C ++または<stdbool.h>
C99から、<
ブール値に対して小なり演算子はどのように定義されますか?
または、このコードの動作を説明します。
#ifndef __cplusplus
#include <stdbool.h>
#endif
#include <stdio.h>
int main() {
bool b = -1;
if(b < true) {
printf("b < true\n");
}
if(b < false) {
printf("b < false\n");
}
if(true < false) {
printf("true < false\n");
}
if(false < true) {
printf("false < true\n");
}
}
MSVCバージョン10では、C ++コードとしてコンパイルされ、GCC 4.6.3-ubuntu5はCコードとしてコンパイルされ、G++4.6.3-1ubuntu5はC++コードとしてコンパイルされます。
false < true
つまり、次の不等式はすべてfalse
です:
(bool)-1 < true
(bool)-1 < false
true < false
そして、以下はtrue
:
false < true