今、私は次のような構造体を持っています:
struct Struct {
uint8_t val1 : 2;
uint8_t val2 : 2;
uint8_t val3 : 2;
uint8_t val4 : 2;
} __attribute__((packed));
すべてのval
sa 単一配列を作成する方法はありますか? 要点は、使用されるスペースではなく、すべての値の場所です。パディングなしでメモリ内に配置し、それぞれが 2 ビットを占有する必要があります。配列を持つことは重要ではありません。インデックスによる単純なアクセスを持つ他のデータ構造は問題ありません。プレーンな C か C++ かは関係ありません。読み取り/書き込みのパフォーマンスは重要です。これは、現在インデックス アクセスに使用されている単純なビット操作と同じ (似ている) 必要があります。
アップデート:
私が正確に欲しいものは次のように説明できます
struct Struct {
uint8_t val[4] : 2;
} __attribute__((packed));