比較演算の結果の値
C の比較演算の結果で,true
の場合は 1
で false
の場合は 0
っていうのが常識的な
挙動のような気がするけど,未規定とかじゃなくてちゃんと決まっているのか,
前から気になっていたのでちゃんと調べた。
素直に検索しても出なかったけど,ちゃんと規格(に近いもの)を見に行ったら
簡単に書いてあるのが見つかって,どうやら true
が 1
で false
が 0
になるってのは
決まってるっぽい。
つまり,以下のコードは環境に依存せずに 2
を出力する。
#include <stdio.h>
int main(void) {
int num = (0 == 0) + (0 == 0);
printf ("%d\n", num);
return 0;
}
あと,結果の型は int
。