>>351
intと混在するケース

unsigned u = 0;
if (-1 < u) {
  printf("出力されない");
}
意味的には (unsigned)-1 < 0 だと気づかないとハマる

この辺を考慮してだと思うが、C FAQでは
>オーバーフローの時の性質の明確なことが大事で負の値が不 要なら、
>対応する符号なしの整数を使え(ただし符号付と符号なしの 整数の混在には注意すること)。
としている