Rumah > pembangunan bahagian belakang > C++ > Adakah `long` Benar-benar 64-Bit pada Windows 64-Bit?

Adakah `long` Benar-benar 64-Bit pada Windows 64-Bit?

DDD
Lepaskan: 2024-12-28 20:50:18
asal
973 orang telah melayarinya

Is `long` Really 64-Bits on 64-Bit Windows?

Saiz Bit Panjang pada Windows 64-Bit: Pandangan Lebih Dekat

Persoalan saiz panjang pada Windows 64-bit mempunyai mencetuskan sedikit kekeliruan. Walaupun dokumentasi menunjukkan bahawa panjang sememangnya 64-bit dalam persekitaran ini, realitinya lebih bernuansa.

Dalam alam sistem Unix, terdapat pelbagai susunan untuk saiz integer dan penunjuk pada platform 64-bit, terutamanya ILP64 dan LP64. Walau bagaimanapun, pendekatan Microsoft berbeza dengan LLP64.

ILP64 lwn. LP64

Type ILP64 LP64 LLP64
char 8 8 8
short 16 16 16
int 64 32 32
long 64 64 32
long long 64 64 64
pointer 64 64 64

Semua sistem Unix 64-bit moden menggunakan LP64, yang panjangnya ialah 64-bit. MacOS X dan Linux termasuk dalam kategori ini.

LLP64 dan Windows 64-Bit

Skim LLP64 Microsoft mengutamakan penyusunan semula perisian 32-bit tanpa pengubahsuaian. Akibatnya, pada sistem Windows 64-bit:

  • panjang dan int kekal bersaiz 32-bit
  • Jenis data baharu diperkenalkan untuk integer 64-bit

Kod Neutral Platform

Untuk mencapai kod neutral platform, adalah disyorkan untuk menggunakan jenis daripada C99 pengepala, yang menyediakan:

  • int8_t ke int64_t untuk integer yang ditandatangani
  • uintptr_t untuk integer yang tidak ditandatangani untuk menyimpan penunjuk
  • intmax_t untuk saiz integer terbesar pada platform

Dengan menggunakan jenis ini dalam anda kod, anda boleh menulis aplikasi yang bebas daripada saiz integer tertentu pada platform yang berbeza.

Kesimpulan

Walaupun panjang biasanya 64-bit pada sistem Unix, pada 64- bit Windows, ia kekal 32-bit kerana pendekatan LLP64 Microsoft. Dengan memahami konvensyen saiz integer yang berbeza dan menggunakan jenis neutral platform, pembangun boleh mencipta kod yang serasi merentas pelbagai sistem.

Atas ialah kandungan terperinci Adakah `long` 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