Cả hai chắc chắn tạo mã tương tự như vậy bất cứ điều gì truyền đạt mục tiêu tổng thể các chức năng của là sự lựa chọn tốt hơn:
unsigned int i = ...;
assert(i > 0); /*option 1*/
assert(i != 0); /*option 2*/
Lựa chọn 1 tác phẩm tốt hơn trong hầu hết các trường hợp vì nó là một sự khẳng định tích cực: những gì nên giá trị được so với những gì nó không nên. Thông thường, điều này dễ hiểu hơn. Ngoài ra khi tính chất số học của i
đang được thử nghiệm, đây là con đường để đi.
Tùy chọn 2 hoạt động tốt hơn trong các trường hợp giới hạn khi i
chỉ được sử dụng cho số không hoặc không khác - đặc biệt nếu đó là tập hợp các bit logic có giá trị số học không liên quan.
'unsigned int' có thể là' 0'. – birryree
Tôi biết. Đó là lý do tại sao tôi cần phải khẳng định. –
Nó vẫn có thể là 0 – ColdSteel