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)
LP64 (Panjang, Penunjuk Adalah 64-bit)
LLP64 (Panjang Panjang, Penunjuk 64-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
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!