In the following code, assume that both unsigned short and unsigned char are narrower than int.
int f(void) { unsigned short us; unsigned char uc; return uc < us; } |
In this example, both automatics are either promoted to int or to unsigned int, so the comparison is sometimes unsigned and sometimes signed. However, the C compiler does not warn you because the result is the same for the two choices.