Bu dönüşüm ne kadar taşınabilir? Her iki iddianın da geçtiğinden emin olabilir miyim?
int x = 4<5;
assert(x==1);
x = 4>5;
assert(x==0);
Neden diye sorma. Bunun çirkin olduğunu biliyorum. Teşekkür ederim.
assert( 4 < 5);
veassert(!( 4 > 5));
(4 < 5) ? 1 : 0
Bir booleanı gerçekten 0 veya 1'e dönüştürmem gerekirse muhtemelen yazardım. İyi bir derleyici muhtemelen aynı makine kodunu üretir ve bir insan okuyucu için daha nettir.
assert(x!=0)
. Bool (doğru) taşınabilirliği int (1) 'e dönüştürse bile, "yanlış değil" iddiaları daha okunabilir bir ifadeye sahiptir.