J'ai déjà vu d'autres utiliser Bitwise-OR pour combiner des indicateurs avant:
#define RUN 0x01
#define JUMP 0x02
#define SHOOT 0x04
const byte madPerson = RUN | JUMP | SHOOT;
C'est aussi ainsi que je le fais.
Mais j'ai également vu certains (moins nombreux) combiner des indicateurs en utilisant l'addition:
#define RUN 0x01
#define JUMP 0x02
#define SHOOT 0x04
const byte madPerson = RUN + JUMP + SHOOT;
Lequel est le plus "lisible"? (Laquelle pensez-vous que plus de gens reconnaîtront?) Quelle est la façon "standard" de le faire? lequel préfères-tu?
1<<0,1<<1,1<<2et ainsi de suite. Lorsque vous avez de nombreux indicateurs, il devient plus lisible, plus facile à entretenir, moins sujet aux erreurs. Par exemple, si vous emballez tous les 64 bits d'un entier 64 bits, vous voulez vraiment éviter les fautes de frappe :) La façon dont vous représentez1est également importante. Pour un entier 64 bits dans VS2010, je pense que c'est le cas1UI64, ou quelque chose comme ça. Utiliser un mauvais type pourrait vous mordre.