Rumah >pembangunan bahagian belakang >C++ >Adakah Saiz Jenis Data Boolean dalam C Sentiasa 1 Bait?
Menentukan Saiz Jenis Data Boolean dalam C
Setiap pengaturcara C menemui jenis data asas yang dikenali sebagai "bool," yang mewakili nilai logik benar atau salah. Satu soalan biasa yang timbul apabila bekerja dengan jenis data ini ialah sama ada saiznya sentiasa 1 bait.
Takrifan Standard sizeof(bool)
Jawapan kepada soalan ini , seperti yang ditakrifkan oleh standard bahasa C, ialah sizeof(bool) adalah ditentukan pelaksanaan. Ini bermakna saiz khusus nilai boolean boleh berbeza-beza bergantung pada pengkompil dan platform yang digunakan.
Secara khusus, §5.3.3/1 piawai C menyatakan bahawa saiz char, char bertanda dan tidak bertanda char sentiasa 1, tetapi saiz semua jenis asas lain, termasuk bool, adalah ditakrifkan pelaksanaan:
sizeof(char), sizeof(signed char) and sizeof(unsigned char) are 1; the result of sizeof applied to any other fundamental type is implementation-defined.
Tambahan pula, Nota Kaki 69 dengan jelas menyatakan bahawa "saiz(bool) tidak perlu menjadi 1."
Saiz Khusus Pelaksanaan
Akibatnya, saiz bool boleh berbeza-beza merentas penyusun dan perkakasan yang berbeza seni bina. Sebagai contoh, sesetengah penyusun boleh melaksanakan bool sebagai bit tunggal, manakala yang lain mungkin menggunakan berbilang bait atas sebab keserasian atau untuk mengoptimumkan prestasi pada seni bina tertentu.
Oleh itu, adalah penting untuk mengetahui bahawa saiz bool mungkin tidak selalunya 1 bait dan untuk mempertimbangkan kebolehubahan ini apabila membangunkan aplikasi C untuk berbilang platform atau apabila bekerja dengan perpustakaan saling kendali yang mungkin mempunyai andaian berbeza tentang saiz boolean nilai.
Atas ialah kandungan terperinci Adakah Saiz Jenis Data Boolean dalam C Sentiasa 1 Bait?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!