[英]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-bit
的C++
。
操作系統和編譯器的組合以及編譯器的設置將決定指針和其他類型的大小。 在所有現代64位處理器中,處理器(和大多數操作系統)支持同時運行32位和64位可執行文件,因此根據設置,您可以獲得32位或64位指針大小[和其他類型可能或者可能不會改變,具體取決於它是哪種編譯器和OS組合]。
C,C#和C ++沒有固定大小的原因是允許為大量不同的處理器編譯語言 - 包括24位整數或9位字符的“奇怪”處理器(和36 -bit int
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.