I'm puzzled. Example:
int x=-1;
unsigned y=0;
(x<y) ----> false
int8_t x=-1;
unint8_t y=0;
(x<y) ----> true
Additionally, the compiler raises warnings on the first comparison, but not the second. It seems that for
- (int vs unsigned) - int promoted to unsigned
- (intN_t vs uintN_t) - uintN_t promoted to intN_t
Why have this behaviour? Like... really?