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

我知道Word32是无符号的32位int类型,但是可能需要用其他名称UWord32编写它吗?我在这里想念什么吗?它与Word32有什么不同吗?

另外,WORD32是否可以仅用int替换其在C#中的用法?如果没有,为什么?

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

最佳答案

但是可能需要用其他名称UWord32编写它吗?


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

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

WORD32-> intInt32

UWORD32-> uintUInt32

WORD16-> shortInt16

UWORD16-> ushortUInt16

但是,所有这些都是基于给定的命名方案,基于我的期望进行的推测。

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

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




  我知道Word32是无符号的32位int类型,但是可能需要用其他名称UWord32编写它吗?


在这种情况下,可能不需要为同一类型有两个定义。您正在使用的两个标头定义的内容可能略有不同。同样,您需要检查使用的标头来定义这些类型,并查看如何指定它们。

关于c# - Word16和UWord16之间的混淆,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12322440/

10-09 19:42