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
191 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!

sumber:php.cn
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