Я бачив, як інші раніше використовували побітові або АБО для поєднання прапорів:
#define RUN 0x01
#define JUMP 0x02
#define SHOOT 0x04
const byte madPerson = RUN | JUMP | SHOOT;
Це також я роблю.
Але я також бачив деякі (не так багато) комбіновані прапори, використовуючи додавання:
#define RUN 0x01
#define JUMP 0x02
#define SHOOT 0x04
const byte madPerson = RUN + JUMP + SHOOT;
Хто з них "читабельніший"? (На вашу думку, хто більше людей визнає?) Який "стандартний" спосіб це зробити? Який тобі більше подобається?
1<<0
,1<<1
,1<<2
і так далі. Коли у вас багато прапорів, він стає більш читабельним, більш ремонтованим, менш схильним до помилок. Наприклад, якщо ви запакуєте всі 64 біти 64-бітного int, ви дійсно хочете уникнути помилок :)1
Важливо, як ви представляєте . Для 64-бітового цілого числа в VS2010 я думаю, що воно є1UI64
, або щось подібне. Використання неправильного типу може вас укусити.