次のコードでは、int が 16 ビットであると仮定します。
int f(void) { int i = 0; return i > 0xffff; }
16 進数定数の型が int (2 の補数を使用するマシンで値 – 1) または unsigned int (値 65535) であるため、比較は -Xs および -Xt モードで真になり、-Xa および -Xc モードあるいは -std フラグが指定された場合に偽となります。
この場合も、キャストを適切に使用することにより、コードが読みやすくなり、警告も発行されなくなります。
-Xt, -Xs modes: i > (int)0xffff -Xa, -Xc modes, or when -std flag is specified: i > (unsigned int)0xffff or i > 0xffffU