>>272
返事が来ている。
ようするに「signedでもunsignedでも常にifの中でキャストしろ」ということらしい。
if ((unsigned char)((TestChar ^ 0x20 ) - 0xA1) <= 0x3B)
試してみたけどそこを直すだけでうまくいった。

http://www.coara.or.jp/~tkuri/D/019.htm#D2002-10-27
ちなみにここのコードもcharのキャスト1つで結果が変わってくる例。

>型キャスト,好きな時に適当に使ってればいいやと思っていたのですが,……
>私はすっかり型キャストをナメていました。
まさにこれだ……。orz