Làm thế nào di chuyển là chuyển đổi này. Tôi có thể chắc chắn rằng cả hai khẳng định đều vượt qua?
int x = 4<5;
assert(x==1);
x = 4>5;
assert(x==0);
Đừng hỏi tại sao. Tôi biết rằng nó là xấu xí. Cảm ơn bạn.
assert( 4 < 5);
vàassert(!( 4 > 5));
(4 < 5) ? 1 : 0
nếu tôi thực sự cần chuyển đổi boolean thành 0 hoặc 1. Một trình biên dịch tốt sẽ có khả năng tạo ra cùng một mã máy và nó rõ ràng hơn cho người đọc.
assert(x!=0)
. Ngay cả khi bool (true) chuyển đổi di động sang int (1), các xác nhận "không sai" có biểu thức dễ đọc hơn.