Rumah > pembangunan bahagian belakang > C++ > Mengapa 'berganda panjang' Menduduki 12 Bait pada Sistem Windows XP 32-bit Saya?

Mengapa 'berganda panjang' Menduduki 12 Bait pada Sistem Windows XP 32-bit Saya?

Linda Hamilton
Lepaskan: 2024-11-10 11:26:02
asal
205 orang telah melayarinya

Why Does 'long double' Occupy 12 Bytes on My 32-bit Windows XP System?

Menjelaskan Percanggahan antara 'long double' dan 'double' Jenis Data

Walaupun faham umum bahawa 'long double' biasanya menduduki 8 bait, poster itu menghadapi senario pelik di mana 'double panjang' menuntut 12 bait pada sistem Windows XP 32-bit mereka. Untuk merungkai enigma ini, mari kita mendalami sebab asasnya.

Menurut Wikipedia, pada seni bina x86 (yang termasuk Windows XP), kebanyakan penyusun memilih untuk melaksanakan 'double panjang' sebagai jenis ketepatan lanjutan 80-bit . Walau bagaimanapun, untuk mengekalkan penjajaran struktur data yang cekap, jenis ini mungkin disimpan sebagai 12 bait (atau bahkan 16 bait) dalam beberapa kes.

Selain itu, penyusun tertentu melangkaui jenis 80-bit dan melaksanakan 'ganda panjang' sebagai format ketepatan empat kali ganda 128-bit. Format lanjutan ini tidak diterima pakai secara meluas dan biasanya dilaksanakan dalam perisian, dan bukannya disokong secara asli oleh perkakasan.

Oleh itu, jawapannya terletak pada budi bicara pengkompil. Walaupun 'double panjang' secara amnya sejajar dengan jenis ketepatan lanjutan 80-bit, penyusun bebas untuk memanjangkan kapasiti storannya kepada 12 atau bahkan 16 bait untuk tujuan penjajaran. Akibatnya, kapasiti storan lanjutan berpotensi membolehkan julat nilai yang lebih luas disimpan dalam 'double panjang' berbanding 'double'.

Atas ialah kandungan terperinci Mengapa 'berganda panjang' Menduduki 12 Bait pada Sistem Windows XP 32-bit Saya?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan