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
163 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!

sumber:php.cn
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