Seberapa portabel konversi ini. Bisakah saya yakin bahwa kedua pernyataan itu lulus?
int x = 4<5;
assert(x==1);
x = 4>5;
assert(x==0);
Jangan tanya kenapa. Saya tahu itu jelek. Terima kasih.
assert( 4 < 5);
danassert(!( 4 > 5));
(4 < 5) ? 1 : 0
jika saya benar-benar perlu mengubah boolean menjadi 0 atau 1. Kompiler yang baik kemungkinan akan menghasilkan kode mesin yang sama dan lebih jelas untuk pembaca manusia.
assert(x!=0)
. Bahkan jika bool (true) mengkonversi portable ke int (1), pernyataan "not false" memiliki ekspresi yang lebih mudah dibaca.