簡體   English   中英

為什么C#中的sizeof(int *)= 8,C ++中的sizeof(int *)= 4

[英]Why is sizeof(int*) = 8 in C# and sizeof(int*) = 4 in C++

C#

 sizeof(int*)
 8

C ++

 sizeof(int*)
 4

為什么是這樣? C#中的sizeof也是8.在C ++中它是4。

簡單:您正在獲得指針類型的大小。 對於64位應用程序,8將是合適的大小。 4適用於32位應用程序。

可以假設您使用64位.net和32位C ++代碼運行C#代碼。

您正在編譯64-bit C#程序和32-bitC++

指針大小取決於處理器架構。 在32位上,所有指針都是32位(4字節)。 在64位上,它們是64位(8字節)。

您必須將64位C#應用程序與32位C ++應用程序進行比較。

long是C#和C ++中的不同類型。 在C ++中,它是一個32位整數。 在C#中它是64位。

操作系統和編譯器的組合以及編譯器的設置將決定指針和其他類型的大小。 在所有現代64位處理器中,處理器(和大多數操作系統)支持同時運行32位和64位可執行文件,因此根據設置,您可以獲得32位或64位指針大小[和其他類型可能或者可能不會改變,具體取決於它是哪種編譯器和OS組合]。

C,C#和C ++沒有固定大小的原因是允許為大量不同的處理器編譯語言 - 包括24位整數或9位字符的“奇怪”處理器(和36 -bit int

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM