私はフラグを使ったプログラミングにあまり慣れていませんが、フラグが役立つ状況を見つけたと思います。
特定のイベントのリスナーとして自分自身を登録するオブジェクトがいくつかあります。それらが登録するイベントは、構築時に送信される変数に依存します。これを行う良い方法は、次のようなビットごとの OR 接続変数を送信することだと思いますTAKES_DAMAGE | GRABBABLE | LIQUID:
しかし、これは私が混乱するところです。できれば、フラグはenum. しかし、それも問題です。これらのフラグを取得した場合:
enum
{
TAKES_DAMAGE,/* (0) */
GRABBABLE, /* (1) */
LIQUID, /* (2) */
SOME_OTHER /* (3) */
};
次に、フラグSOME_OTHER(3) を送信することは、 を送信することと同じGRABBABLE | LIQUIDですよね?
このようなものをどのように正確に扱いますか?