私は困惑しています。例:
int x=-1;
unsigned y=0;
(x<y) ----> false
int8_t x=-1;
unint8_t y=0;
(x<y) ----> true
さらに、コンパイラは最初の比較で警告を出しますが、2 番目の比較では出ません。どうやら
- (int vs unsigned) - int を unsigned に昇格
- (intN_t vs uintN_t) - uintN_t が intN_t に昇格
なぜこのような振る舞いをするのですか?のように... 本当に?