4

標準データ型のビット数よりも大きいビットフラグ オプションを持つ列挙型があるとします。

enum flag_t {
FLAG_1 = 0x1,
FLAG_2 = 0x2,
...
FLAG_130 = 0x400000000000000000000000000000000,
};

これはいくつかの理由で不可能です。列挙型の最大サイズは 128 ビットです (私のシステムの C/gcc では、実験から)、単一の変数も最大サイズが 128 ビットなどです。

C では、配列に対してビット単位の操作を実行することはできませんが、C++ では、ビット単位の演算子をオーバーロードして、ループでジョブを実行できると思います。

どのフラグがどこに行くのかを手動で覚える以外に、C に方法はありますか?

4

3 に答える 3