我正在将一些C代码移植到C#中。我看到很多Word16
,Word32
用法以及UWord16
和UWord32
。
我知道Word32
是无符号的32位int
类型,但是可能需要用其他名称UWord32
编写它吗?我在这里想念什么吗?它与Word32
有什么不同吗?
另外,WORD32
是否可以仅用int
替换其在C#中的用法?如果没有,为什么?
This Source,表示WORD是无符号整数类型。是的,来源是Haskell,我找不到其他任何解释数据类型WORD
的文档。
最佳答案
但是可能需要用其他名称UWord32编写它吗?
这是无符号的32位整数类型。
通常,您可以替换(移至C#):WORD32
-> int
(Int32
)UWORD32
-> uint
(UInt32
)WORD16
-> short
(Int16
)UWORD16
-> ushort
(UInt16
)
但是,所有这些都是基于给定的命名方案,基于我的期望进行的推测。
请注意,如果您使用的是Windows Data Types,WORD
-> ushort
和DWORD
-> uint
。签名类型为INT
/ INT32
-> int
,然后是INT16
-> short
,INT64
-> long
等。
话虽这么说,所有这些选项都是用C或C ++定义的,而不是“本机”(定义语言)类型的。如果选择的话,您的代码可以定义WORD
来表示无符号的64位整数。因此,您需要查看定义的来源(我在此处列出了Windows API标准)。
我知道Word32是无符号的32位int类型,但是可能需要用其他名称UWord32编写它吗?
在这种情况下,可能不需要为同一类型有两个定义。您正在使用的两个标头定义的内容可能略有不同。同样,您需要检查使用的标头来定义这些类型,并查看如何指定它们。
关于c# - Word16和UWord16之间的混淆,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12322440/