比較演算の結果の値
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。