質問: 2; と定義し ここで if ( i > dw1 ){ 何かの処理; } とコーディングすると warning c4018: '>' : signed と unsigned の数値を比較しようとしました。 のワーニングがでます。 これは、dwordがint型でなくunsigned int型のようにも見えます。 ある本によれば(vc++.v.net逆引き大全500の極意) dword はint型であると記述されています。 もし、int型ならこのワーニングはでないはずなのですが、 なぜでるのでしょうか。又、dwordの実際の型は何なのでしょうか。ご存じのかたおりましたら、教えていただけませんでしょうか。
回答: 型定義が知りたいのならば、宣言ファイルを見れば疑問を挟む余地もありません。 dword型はwindef.hで "typedef unsigned long dword;" と宣言されています。 visual studioを使っているのならば、知りたい型の上にマウスポインタを置いて右クリック、ポップアップメニューの「定義へ移動」または「宣言へ移動」で簡単に知ることが出来ます。