有没有一种简单的方法将结构体转换为uint64_t或任何其他类型的整数,假设该结构体小于或等于int的大小? 我能想到的唯一解决方案是使用union,但我从来不喜欢他们。
让我添加一个代码片段来澄清:
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 寄存器以捕获其位顺序。
希望这样能更清晰一些。