c#中unsigned long int的等价物是什么?

时间:2014-01-31 17:01:31

标签: c# c++ .net c long-integer

我有一个C结构,定义如下:

typedef struct {

    unsigned long int a;

} TEST;

我想创建一个这个结构的C#等价物吗?

有任何帮助吗?令我困惑的是“unsigned long int”至少是至少32位,这意味着什么,它是32位,64位还是16位,对吧?

1 个答案:

答案 0 :(得分:7)

您需要uintulong,具体取决于您原生C平台上intlong 的内容:

  • C#uint是32位
  • C#ulong是64位

至少和平台依赖关系是C中必不可少的问题,因为它实际上被翻译成机器代码,而C是为许多具有不同字大小的架构开发的。相反,C#是针对虚拟机定义的(完全类似于 Java Javascript ),因此可以抽象出硬件的字大小,而不是由语言的标准VM(C#中的CLR)定义。 VM和harware 字大小之间的差异由VM负责并隐藏到托管代码中。