C里面结构体大小的问题,一般考虑几个补齐就行。首先,每个成员的开始位置和自己的大小对齐,char的话因为是1,所以不用考虑。最后,整个结构体的大小和结构体中的占用位数最大的成员对齐。如果说你这个结构体是 struct A { char a; int b; char c; }; 那么第一个成员a就占用四个字节:char实际占一个,为了满足b的对齐条件(int占4个字节),在a后面补上三个字节。跟cpu一次取多少数据无关。
C里面结构体大小的问题,一般考虑几个补齐就行。
首先,每个成员的开始位置和自己的大小对齐,char的话因为是1,所以不用考虑。最后,整个结构体的大小和结构体中的占用位数最大的成员对齐。
如果说你这个结构体是
那么第一个成员a就占用四个字节:char实际占一个,为了满足b的对齐条件(int占4个字节),在a后面补上三个字节。
跟cpu一次取多少数据无关。