求教关于c语言位域的操作

Python017

求教关于c语言位域的操作,第1张

{

arr[lpos]=a[x]&1

pos++

if(pos==5)

break

}循环(a[x]>>=1)

我就不补全了,大概这个意思

c存在第三个字节

sizeof结构体,这个要看结构体内变量是如何定义的,结构体存放数据有个对齐原则,找到占用最大字节的变量,然后都向它对齐,比如bool和char类型占用一个字节,short占两个字节,int,float为4个字节,double为八个字节。

定义的顺序不同,sizeof的结果不同。我给你举个例子。

struct A{

    int a

    char b

    char c

}

sizeof(A)应该为4+1+1,但是需要对齐,所以这个值就是 8  

图1

这个是struct A的变量存储

struct B{

    char a

    int b

    char c

}

sizeof(B) 这个值就是12

图2

这个是struct B的变量存储