Rumah >pembangunan bahagian belakang >C++ >Adakah `long` Dijamin Mempunyai Sekurang-kurangnya 32 Bit dalam C ?
Adakah lama Dijamin Mempunyai 32 Bit?
Walaupun andaian biasa berdasarkan Piawaian C, persoalan timbul sama ada panjang dijamin mempunyai sekurang-kurangnya 32 bit. Standard mengklasifikasikan jenis kamiran asas sebagai:
sizeof(char) ≤ sizeof(short int) ≤ sizeof(int) ≤ sizeof(long int)
Walau bagaimanapun, ramai yang menganggap bahawa berdasarkan hierarki ini, panjang mesti mempunyai 32 bit. Walau bagaimanapun, Piawaian secara eksplisit menyatakan bahawa bilangan bit dalam bait adalah ditakrifkan pelaksanaan.
Tuntutan Alf P. Steinbach
Walaupun terdapat percanggahan ini, Alf P. Steinbach menegaskan bahawa panjang dijamin 32 bit. Beliau mengasaskan tuntutan ini pada had Tersirat pada julat nilai yang lama boleh disimpan (LONG_MIN hingga LONG_MAX).
Piawaian C merujuk kepada Piawaian C (18.3.2), yang mentakrifkan:
LONG_MIN ≤ -2^31 + 1 LONG_MAX ≥ 2^31 - 1
Sambungan kepada Perwakilan 32-Bit
Walaupun ini menetapkan julat untuk jangka masa yang lama, ia tidak menjamin 32 bit secara eksplisit. Walau bagaimanapun, terdapat dua kemungkinan:
Kesimpulan
Walaupun Standard C tidak secara eksplisit memerlukan panjang untuk mempunyai 32 bit, keperluan julat minimum (LONG_MIN hingga LONG_MAX) secara tersirat memerlukannya. Ini kerana mewakili nilai ini memerlukan sama ada 32 bit storan atau mekanisme khusus pelaksanaan dengan kapasiti nilai yang setara. Oleh itu, boleh disimpulkan bahawa C menjamin bahawa panjang mempunyai sekurang-kurangnya 32 bit.
Atas ialah kandungan terperinci Adakah `long` Dijamin Mempunyai Sekurang-kurangnya 32 Bit dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!