首頁 >後端開發 >C++ >在 64 位元 Windows 上,「long」真的是 64 位元嗎?

在 64 位元 Windows 上,「long」真的是 64 位元嗎?

DDD
DDD原創
2025-01-01 04:50:10171瀏覽

Is 'long' Really 64-bits on 64-bit Windows?

了解64 位元Windows 上「長」的位元大小

問題:

相互矛盾的資訊表明' long' 在64 位元Windows 電腦上可能不是64 位元。這是真的嗎?程式設計師應該用什麼來代替?

答案:

答案在於檢查64 位元平台上不同的整數大小排列:

ILP64(Int、Long、指針是64位元)

  • 所有整數資料型態和指標都是 64 位元。

LP64(長整型,指針都是 64 位元)

  • 長整型和指針類型為 64位元。
  • Int 和其他整數類型保持 32 位元。

LLP64(Long Long,指標為 64 位元)

  • 這是微軟在64位元使用的方案Windows。
  • Long long 和指標型別為 64 位元。
  • Int 和 long 仍為 32 位元。

對 Windows 的影響:

在 64 位元 Windows 上,「long」確實是 32 位元,與其他 64 位元平台。 Microsoft 採用了 LLP64 方案來確保與現有 32 位元應用程式的相容性。

建議:

為了確保平台中立的程式碼,請使用 header:

  • 32位元整數的int32_t
  • 64 位元整數的int64_t
  • 指標的 uintptr_t

謹慎使用使用系統類型(例如「長」)不同平台有所不同。僅使用 intptr_t 作為兩個 uintptr_t 值相減的結果。

結論:

64 位元 Windows 上 'long' 的位元大小為 32 位元,偏離許多其他 64 位元系統使用的 LP64 方案。為了避免特定於平台的複雜性,程式設計師應該採用平台中立的整數類型並小心處理系統類型。

以上是在 64 位元 Windows 上,「long」真的是 64 位元嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn