2

いくつかのCコードをC#に移植しています。と一緒に、たくさんの使用法をWord16見ています。Word32UWord16UWord32

Word32符号なし32ビットタイプであることは知っintていますが、別の名前で書き込む必要があったのはUWord32なぜでしょうか。ここで何かが足りませんか?なんらかの違いはWord32ありますか?

また、WORD32C#での使用法を次のように置き換えることはできintますか?そうでない場合、なぜですか?

このソースは、WORDが符号なし整数型であると述べています。はい、ソースはHaskellのものです。データ型を説明する他のドキュメントは見つかりませんでしたWORD

4

1 に答える 1

4

しかし、UWord32という別の名前でそれを書く必要があったのは何でしょうか?

これは符号なし32ビット整数型です。

一般に、次のように置き換えることができます(C#に移行)。

WORD32-> intInt32

UWORD32-> uintUInt32

WORD16-> shortInt16

UWORD16-> ushortUInt16

ただし、これは、あなたが示した命名スキームを考えると、私の期待に基づくすべての推測です。

Windowsデータ型を使用している場合は、WORD-> ushort、およびDWORD->であることに注意してくださいuint。署名されたタイプはINT/ INT32-> int、次にINT16-> shortINT64->longなどです。

そうは言っても、これらのオプションはすべてCまたはC ++で定義されており、「ネイティブ」(言語定義)タイプではありません。WORD選択した場合、コードは符号なし64ビット整数を表すように定義できます。そのため、定義がどこから来ているかを確認する必要があります(ここにWindows API標準をリストしました)。


Word32がunsigned32bitint型であることは知っていますが、UWord32という別の名前で記述する必要があったのでしょうか。

この場合、同じタイプに対して2つの定義を持つ必要はないでしょう。使用している2つのヘッダーが、わずかに異なるものを定義している可能性があります。繰り返しになりますが、これらのタイプを定義する使用しているヘッダーをチェックし、それらがどのように指定されているかを確認する必要があります。

于 2012-09-07T17:02:14.760 に答える