请教一个关于结构体的问题
最近遇到了一个结构体方面的问题:测试代码如下
#include <stdio.h>
typedef unsigned char BYTE;
int main(){
char test;
struct camAuthInd_T{
BYTE btSSDSharedFlag:1;
BYTE btAutoSSDUpdateFlag:1;
BYTE btValidteSSDFlag:1;
BYTE btReserved:5;
}demo;
demo.btSSDSharedFlag=1;
demo.btAutoSSDUpdateFlag=1;
demo.btValidteSSDFlag=1;
printf("\n%02x",test & 0xff);
}
该结构体的成语变量按照bit位进行了取值,
我在linux上执行后,执行结果是07(二进制为00000111);
而在sunOs上执行后,结果却是e0(二进制为11100000);
好像就是对应的二进制位置高低位不同了?所以想请教各位在进行bit位存取的过程中的顺序是怎么样的呀,看执行情况好像是linux是从低bit位开始赋值,而sun却是从高bit位开始,而且只要结构体中成员的顺序发生了改变,这个值也会发生改变。不知道这个和大端、小端字节序有关系吗?还请各位高手赐教!!