倉薫本の話で申し訳無いが、typedefが気になったから書かしてもらうよ。
だれかが言ってたけど、2のtypedefの説明で、typedef UINT unsigned int; って書いてあるんだな。
これ、C言語の初心者がよくはまる(で、初心者だけがはまる)所なんだわ。
#defineと似てるって解説してあるけど、ここがはまるポイントね。
普通に使えてれば、typedefは、typedefを取ったときに変数の宣言に見えること、わかってるはずなんだな。
よっぽどの初心者じゃなかったら、 unsigned int UINT; ってUINTの宣言を UINT unsigned int;とは書かないだろう。

倉薫マンセーなやつには申し訳無いが、こいつ、やっぱわかってないかも。