C#
sizeof(int*)
8
C ++
sizeof(int*)
4
这是为什么? C#中的sizeof也是8.在C ++中,它是4。
答案 0 :(得分:15)
简单:您正在获取指针类型的大小。对于64位应用程序,8将是合适的大小。 4适用于32位应用程序。
可以假设您使用64位.net和32位C ++代码运行C#代码。
答案 1 :(得分:2)
您正在C#
上编译64-bit
计划,C++
编译32-bit
个计划。
答案 2 :(得分:1)
指针大小取决于处理器架构。在32位上,所有指针都是32位(4字节)。在64位上,它们是64位(8字节)。
您必须将64位C#应用程序与32位C ++应用程序进行比较。
答案 3 :(得分:1)
OS和编译器的组合以及编译器的设置将决定指针和其他类型的大小。在所有现代64位处理器中,处理器(和大多数操作系统)支持同时运行32位和64位可执行文件,因此根据设置,您可以获得32位或64位指针大小[和其他类型可能或者可能不会改变,具体取决于它是哪种编译器和OS组合。
C,C#和C ++没有固定大小的原因是允许为大量不同的处理器编译语言 - 包括"怪异的"具有24位整数或9位字符(以及36位int
)