簡體   English   中英

如果iOS是32位操作系統,我們如何使用uint64_t和int64_t?

[英]If iOS is a 32 bit OS, how can we be using uint64_t and int64_t?

它似乎工作正常,但我認為可以存儲在內存中的最多是32位整數?

現在我對它的不同之處感到困惑。

謝謝!

我認為其他答案並沒有正確解釋這一點。

uint64_t和int64_t是C語言數據類型 ,而不是硬件數據類型。 編譯器會盡一切努力使這些類型作為64位無符號或有符號整數運行。 如果硬件提供64位寄存器和整數運算那么好 - 編譯器將直接使用它們。 如果硬件只有32位寄存器(或16位或8位),則編譯器和運行時系統使用軟件仿真來完成工作。

區別不在於您可以使用64位數據類型。 不同之處在於可用內存地址空間的大小,以及指向內存的指針所需的大小。 在32位操作系統中,你有2 ^ 32字節的可尋址內存空間,你需要32位指針來覆蓋它。 在64位操作系統中,您有2 ^ 64字節的內存空間要尋址,因此指針必須是64位。

在硬件級別,64位硬件上的內部64位數據類型可能更為理想,因為將有64位寄存器和指令來處理它們。 否則,編譯器/運行時庫將在32位硬件上支持/模擬64位操作。

暫無
暫無

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

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