Word16和UWord16之间的混淆

时间:2012-09-07 17:01:37

标签: c# c porting

我正在将一些C代码移植到C#。我看到了很多Word16Word32用法,以及UWord16UWord32

我知道Word32是一种无符号的32位int类型,但可能需要使用其他名称UWord32来编写它?我在这里错过了什么吗?它是否以某种方式与Word32不同?

另外,WORD32我可以用int替换它在C#中的用法吗?如果没有,为什么?

This Source ,说WORD是无符号整数类型。是的,源代码是Haskell,我找不到任何其他文档来解释数据类型WORD

1 个答案:

答案 0 :(得分:4)

  

但是可能需要用不同的名字写UWord32?

这是一个无符号的32位整数类型。

通常,您可以替换(转移到C#):

WORD32 - > intInt32

UWORD32 - > uintUInt32

WORD16 - > shortInt16

UWORD16 - > ushortUInt16

然而,根据您对已经显示的命名方案的期望,这是所有猜测。

请注意,如果您正在使用Windows Data TypesWORD - > ushortDWORD - > uint。签名类型为INT / INT32 - > int,然后INT16 - > shortINT64 - > long等等。

话虽如此,所有这些选项都是用C或C ++定义的,而不是" native" (语言定义)类型。如果选择,您的代码可以定义WORD来表示无符号的64位整数。因此,您需要查看定义的来源(我在此列出了Windows API标准)。


  

我知道Word32是一个无符号的32位int类型,但是可能需要使用不同的名称UWord32来编写它?

如果是这种情况,则可能不需要对同一类型有两个定义。可能是您使用的两个标题定义的内容略有不同。同样,您需要检查定义这些类型的标题,并查看它们是如何指定的。

相关问题