草庐IT

c++ - 我怎样才能让位域以正确的顺序排列我的位?

首先,有问题的应用程序总是在同一个处理器上,编译器总是gcc,所以我不担心位域不可移植。gcc布置位域,使得第一个列出的域对应于一个字节的最低有效位。所以下面的结构,a=0,b=1,c=1,d=1,你得到一个字节值e0。structBits{unsignedinta:5;unsignedintb:1;unsignedintc:1;unsignedintd:1;}__attribute__((__packed__));(实际上,这是C++,所以我说的是g++。)现在假设我希望a是一个六位整数。现在,我明白为什么这行不通了,但我编写了以下结构:structBits2{unsignedint