现在我有一个看起来像这样的结构:
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));