Rumah > pembangunan bahagian belakang > C++ > Bolehkah `true` dan `1` Sentiasa Dianggap Sama dalam Perbandingan C Merentas Penyusun Berbeza?

Bolehkah `true` dan `1` Sentiasa Dianggap Sama dalam Perbandingan C Merentas Penyusun Berbeza?

Susan Sarandon
Lepaskan: 2024-11-30 01:50:10
asal
253 orang telah melayarinya

Can `true` and `1` Always Be Considered Equal in C   Comparisons Across Different Compilers?

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!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan