1. ホーム
  2. c++

[解決済み] C++では、なぜunsigned intではなくDWORDを使うのですか?[重複しています]。

2022-03-10 17:11:53

質問

私はややC++初心者であることを認めることを恐れないので、これは愚かな質問のように見えるかもしれませんが......。

コード例でDWORDがあちこちで使われているのを見かけます。DWORDの本当の意味を調べてみると、どうやら単なる符号なしint(0〜4,294,967,295)だそうです。では、なぜDWORDがあるのだろう?整数型である'unsigned int'にはない利点は何でしょうか?ポータビリティとマシンの違いに関係があるのでしょうか?

解決方法は?

DWORD は C++ の型ではありません。 <windows.h> .

その理由は DWORD は、Windowsの関数が依存する特定の範囲と形式を持つので、その特定の範囲を必要とする場合は、その型を使用します。(あるいは、「郷に入っては郷に従え」とも言います。) あなたの場合、それはたまたま unsigned int しかし、いつもそうとは限りません。念のため DWORD がある場合 DWORD が期待されます。

例えば、もしこれまで unsigned int の下に別の型を使用することができます。 DWORD を使用するすべてのコードは、同じ要件を維持するために DWORD は、何ら賢くない。(同じように、彼らは DWORD にする必要があります。 unsigned long long を使用するすべてのコードは、それを変更し DWORD は、何もしない方がいい)。


また、注意事項 unsigned int ではなく は 0 から 4,294,967,295 までの範囲を持つ必要があります。参照 こちら .