gccからの有り難い警告

void subfunc( char c )
{
	unsigned char uc = (unsigned char)c;

	uc = (uc & 0xF0) >> 4;

	if (uc >= 0 && uc <= 9) {
                :
                :
                :
	}
}

ってなコードを書くとgcc4がifのところで
"warning: comparison is always true due to limited range of data type"
なんぞとほざいてくる。
頭が???となって考える事15分、0以上なのは当たり前じゃん・・・。
やっぱり泊まろうかな・・・。