考虑到 <= 中的结构为 int 的 sizeof,是否有一种将结构转换为 uint64_t 或任何其他 int 的干净方法?我唯一能想到的只是一个“好的”解决方案——使用工会。然而我从来没有喜欢过他们。
让我添加一个代码片段来澄清:
typedef struct {
uint8_t field: 5;
uint8_t field2: 4;
/* and so on... */
}some_struct_t;
some_struct_t some_struct;
//init struct here
uint32_t register;
现在我如何转换 some_struct 以在 uint32_t 寄存器中捕获其位顺序。
希望这能让它更清楚一点。