结构体位域中的高低位问题 测试代码如下: 1234567891011121314151617181920212223#include <iostream>union Test { unsigned char ch; struct { uint8_t a: 1; uint8_t b: 3; uint8_t c: 2; uint8_t d: 2; };};int main(int argc, const char * argv[]) { Test test; test.a = 1; test.b = 0; test.c = 0; test.d = 0b11; std::cout << test.ch << std::endl; return 0;} 在 macOS 上断点查看内存如下 结论:可以看到,定义在前的位域,在字节的低位。位域在内存中存储的顺序刚好与定义的先后相反。 #c++ 结构体位域中的高低位问题 https://yxibng.github.io/2023/06/09/c++/2023-06-09-位域 高低位/ 作者 yxibng 发布于 2023年6月9日 许可协议 Xcode 源码调试微信 xlog 上一篇 GDB Examining Memory 下一篇