在x64构建的应用程序中,"int"的大小是否会发生变化?

Ela*_*lan 1 c# int 64-bit pinvoke interop

可能重复:
x64上的sizeof(int)?

编译为x64与x86时,IntPtr的大小从4变为8.

int的大小是否也会改变,或者它仍然是Int32?

在使用pinvoke和处理互操作调用时,这个问题尤为重要.是否需要将所有"int"类型显式更改为声明为Int32?

SLa*_*aks 6

没有; int永远是同义词Int32.

对于P/Invoke,您需要使用IntPtr随位数变化.


Ree*_*sey 5

C#中的"int"始终被定义为Int32的别名,作为C#语言规范的一部分,它始终具有相同的大小.使用"int"或"Int32"将产生完全相同的IL.