我正在将一些C代码移植到C#。我看到了很多Word16
,Word32
用法,以及UWord16
和UWord32
。
我知道Word32
是一种无符号的32位int
类型,但可能需要使用其他名称UWord32
来编写它?我在这里错过了什么吗?它是否以某种方式与Word32
不同?
另外,WORD32
我可以用int
替换它在C#中的用法吗?如果没有,为什么?
This Source ,说WORD是无符号整数类型。是的,源代码是Haskell,我找不到任何其他文档来解释数据类型WORD
。
答案 0 :(得分:4)
但是可能需要用不同的名字写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 ++定义的,而不是" native" (语言定义)类型。如果选择,您的代码可以定义WORD
来表示无符号的64位整数。因此,您需要查看定义的来源(我在此列出了Windows API标准)。
我知道Word32是一个无符号的32位int类型,但是可能需要使用不同的名称UWord32来编写它?
如果是这种情况,则可能不需要对同一类型有两个定义。可能是您使用的两个标题定义的内容略有不同。同样,您需要检查定义这些类型的标题,并查看它们是如何指定的。