Rumah > pembangunan bahagian belakang > C++ > Adakah 'panjang' Benar-benar 64-bit pada Windows 64-bit?

Adakah 'panjang' Benar-benar 64-bit pada Windows 64-bit?

DDD
Lepaskan: 2025-01-01 04:50:10
asal
234 orang telah melayarinya

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

Memahami Saiz Bit 'panjang' pada Windows 64-bit

Soalan:

Maklumat yang bercanggah mencadangkan bahawa ' long' mungkin bukan 64 bit pada mesin Windows 64-bit. Adakah ini benar, dan apakah yang sepatutnya digunakan oleh pengaturcara?

Jawapan:

Jawapannya terletak pada memeriksa susunan saiz integer yang berbeza pada platform 64-bit:

ILP64 (Int, Panjang, Penunjuk Adalah 64-bit)

  • Semua jenis data integer dan penunjuk ialah 64 bit.

LP64 (Panjang, Penunjuk Adalah 64-bit)

  • Jenis panjang dan penunjuk ialah 64 bit.
  • Int dan jenis integer lain kekal 32 bit.

LLP64 (Panjang Panjang, Penunjuk 64-bit)

  • Ini ialah skema yang digunakan oleh Microsoft dalam Windows 64-bit.
  • Panjang panjang dan jenis penuding ialah 64 bit.
  • Int dan long kekal 32 bit.

Implikasi untuk Windows:

Pada Windows 64-bit , 'panjang' sememangnya 32 bit, tidak seperti pada platform 64-bit yang lain. Microsoft mengguna pakai skema LLP64 untuk memastikan keserasian dengan aplikasi 32-bit sedia ada.

Cadangan:

Untuk memastikan kod neutral platform, gunakan jenis integer daripada pengepala:

  • int32_t untuk integer 32-bit
  • int64_t untuk integer 64-bit
  • uintptr_t untuk penunjuk

Berhati-hati apabila menggunakan jenis sistem (mis., 'panjang') sebagaimana yang mungkin berbeza-beza merentasi platform. Hanya gunakan intptr_t sebagai hasil penolakan dua nilai uintptr_t.

Kesimpulan:

Saiz bit 'panjang' pada Windows 64-bit ialah 32 bit, menyimpang daripada skim LP64 yang digunakan oleh banyak sistem 64-bit lain. Untuk mengelakkan komplikasi khusus platform, pengaturcara hendaklah menggunakan jenis integer neutral platform dan mengendalikan jenis sistem dengan berhati-hati.

Atas ialah kandungan terperinci Adakah 'panjang' Benar-benar 64-bit pada Windows 64-bit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan