Tôi đã thấy những người khác sử dụng Bitwise-OR để kết hợp các cờ trước đây:
#define RUN 0x01
#define JUMP 0x02
#define SHOOT 0x04
const byte madPerson = RUN | JUMP | SHOOT;
Đó cũng là cách tôi làm.
Nhưng tôi cũng đã thấy một số (không nhiều) kết hợp cờ bằng cách sử dụng bổ sung:
#define RUN 0x01
#define JUMP 0x02
#define SHOOT 0x04
const byte madPerson = RUN + JUMP + SHOOT;
Cái nào "dễ đọc" hơn? (Bạn nghĩ ai sẽ nhận ra nhiều người hơn?) Cách "chuẩn" để làm điều đó là gì? Bạn thích cái nào hơn?
1<<0
,1<<1
,1<<2
, và vân vân. Khi bạn có nhiều cờ, nó sẽ trở nên dễ đọc hơn, dễ bảo trì hơn, ít bị lỗi hơn. Ví dụ, nếu bạn đang đóng gói tất cả 64 bit của int 64 bit, bạn thực sự muốn tránh lỗi chính tả :) Cách bạn thể1
hiện cũng rất quan trọng. Đối với một số nguyên 64 bit trong VS2010 tôi nghĩ rằng nó là1UI64
, hoặc một cái gì đó tương tự. Sử dụng sai loại có thể cắn bạn.