Bolehkah Bool dan Int Samakan dalam C Merentas Penyusun?
Dalam C , pengaturcara sering menghadapi keperluan untuk membandingkan nilai pelbagai jenis, seperti sebagai bool dan int. Soalan lazim timbul: bolehkah kita mengandaikan dengan selamat bahawa (bool)true sama dengan (int)1 untuk mana-mana pengkompil C?
Jawapan: Ya, tetapi Cast adalah Berlebihan
Barisan dalam ungkapan (bool)true == (int)1 adalah tidak diperlukan. C secara automatik mempromosikan nilai bool kepada int semasa perbandingan. Promosi ini menghasilkan nilai 1.
Tingkah laku ditakrifkan oleh standard C dalam [conv.integral] / 4:
"Jika jenis sumber ialah bool... true ditukar kepada satu. "
Oleh itu, ungkapan benar == 1 bersamaan dengan 1 == 1, iaitu perbandingan benar. Tingkah laku ini konsisten merentas semua pengkompil C.
Atas ialah kandungan terperinci Bolehkah `true` dan `1` Sentiasa Dianggap Sama dalam Perbandingan C Merentas Penyusun Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!