我有一个C结构,定义如下:
typedef struct {
unsigned long int a;
} TEST;
我想创建一个这个结构的C#等价物吗?
有任何帮助吗?令我困惑的是“unsigned long int”至少是至少32位,这意味着什么,它是32位,64位还是16位,对吧?
答案 0 :(得分:7)
您需要uint
或ulong
,具体取决于您原生C平台上int
或long
的内容:
uint
是32位ulong
是64位至少和平台依赖关系是C中必不可少的问题,因为它实际上被翻译成机器代码,而C是为许多具有不同字大小的架构开发的。相反,C#是针对虚拟机定义的(完全类似于 Java 或 Javascript ),因此可以抽象出硬件的字大小,而不是由语言的标准VM(C#中的CLR)定义。 VM和harware 字大小之间的差异由VM负责并隐藏到托管代码中。