Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah C Secara Tersirat Menukar Nilai Boolean kepada Integer?
Penukaran Tersirat: Transformasi bool kepada int
Dalam C , penukaran bukan intuitif berlaku apabila menetapkan ungkapan bool kepada pembolehubah int. Pertimbangkan coretan kod berikut:
int x = 4 < 5; assert(x == 1); x = 4 > 5; assert(x == 0);
Butiran Penukaran
Mengikut Piawaian C (§4.7/4 dalam C 11/14, §7.8/4 dalam C 17, §7.3.9/2 dalam C 20):
Oleh itu, dalam kod yang diberikan, 4 < 5 menilai kepada benar, yang ditukar kepada 1 dan disimpan dalam x, manakala 4 > 5 menilai kepada palsu, yang ditukar kepada 0 dan disimpan dalam x.
Kemudahalihan
Penukaran bool kepada int tersirat ini mudah alih merentas semua platform C.
Perbandingan dengan C
Tidak seperti C , C tidak tidak menyokong jenis data bool secara jelas sebelum standard C99. Walau bagaimanapun, piawaian C99 memperkenalkan jenis _Bool, yang bersamaan dengan bool dalam C . Dalam C99, makro benar dan salah berkembang kepada pemalar integer 1 dan 0, masing-masing. Akibatnya, kelakuan penukaran bool kepada int adalah serupa dalam kedua-dua C dan C .
Kesimpulan
Penukaran bool kepada int tersirat dalam kod yang diberikan adalah pematuhan standard dan mudah alih merentas platform C. Walaupun ia kelihatan tidak lazim, ia adalah penting untuk memahami tingkah laku asas bahasa C.
Atas ialah kandungan terperinci Bagaimanakah C Secara Tersirat Menukar Nilai Boolean kepada Integer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!