Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah C Secara Tersirat Menukar Nilai Boolean kepada Integer?

Bagaimanakah C Secara Tersirat Menukar Nilai Boolean kepada Integer?

Susan Sarandon
Susan Sarandonasal
2024-12-03 20:47:11545semak imbas

How Does C   Implicitly Convert Boolean Values to Integers?

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):

  • Nilai bool palsu secara tersirat ditukar kepada 0.
  • Nilai bool benar ditukar secara tersirat kepada 1.

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!

Kenyataan:
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