Saya telah melihat orang lain menggunakan Bitwise-OR untuk menggabungkan flag sebelumnya:
#define RUN 0x01
#define JUMP 0x02
#define SHOOT 0x04
const byte madPerson = RUN | JUMP | SHOOT;
Itu juga cara saya melakukannya.
Tapi saya juga melihat beberapa (tidak banyak) menggabungkan flag menggunakan tambahan:
#define RUN 0x01
#define JUMP 0x02
#define SHOOT 0x04
const byte madPerson = RUN + JUMP + SHOOT;
Mana yang lebih "dapat dibaca"? (Menurut Anda, mana yang akan dikenali lebih banyak orang?) Apa cara "standar" untuk melakukannya? Yang mana yang Anda sukai?
1<<0
,1<<1
,1<<2
, dan sebagainya. Ketika Anda memiliki banyak flag, itu menjadi lebih mudah dibaca, lebih dapat dipelihara, lebih sedikit rawan kesalahan. Misalnya, jika Anda mengemas semua 64 bit int 64 bit, Anda benar-benar ingin menghindari kesalahan ketik :) Cara Anda mewakili1
juga penting. Untuk integer 64 bit di VS2010 saya pikir itu1UI64
, atau sesuatu seperti itu. Menggunakan jenis yang salah bisa menggigit Anda.