考虑
uint32_t n = 0x12345678
;存储在BE机或LE机中,如图所示;现在我有一个这样定义的结构
struct DATA {
uint32_t a : 24;
uint32_t b : 8;
};
int main() {
struct DATA data;
data.a = 0x123456;
data.b = 0x78;
return 0;
}
它如何存储在内存中?
它如何存储在内存中?
多种可能性:
int
、unsigned
、bool
无效。好的代码不应该关心它如何存储在内存中。
如果代码确实需要一定的顺序,请使用
uint8_t
数组而不是位字段。
注意:许多编译器不会像示例中那样将
uint32_t
存储在奇数边界上。