私は他の人がビットワイズORを使用してフラグを結合する前に見ました:
#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;
どちらが「読みやすい」のですか?(より多くの人が認識すると思いますか?)それを行う「標準的な」方法は何ですか?あなたはどちらを好みますか?
@ジョブ:StackOverflowの質問ではありません。読みやすさ、認識可能性、好み、ベストプラクティスについて尋ねているからです。それに対する単一の客観的な答えはありません。ここに属します。
—
マクニール
1<<0
、1<<1
、1<<2
、など。多くのフラグがあると、読みやすく、保守しやすく、エラーが発生しにくくなります。たとえば、64ビットintの64ビットすべてをパックする場合は、タイプミスを避ける必要1
があります:)表現方法も重要です。VS2010の64ビット整数の場合、それはそうだと思います1UI64
。間違ったタイプを使用すると、噛みつく可能性があります。