课程
/后端开发
/C
/Linux C语言结构体
每个成员相对于结构体首地址的偏移是当前成员所占内存大小的整数倍,那么c的偏移量就是8;
内存大小=最后一个成员的偏移量(也就是8)+最后一个成员的大小(8)+末尾填充字节数(0)=16;
是这个样子吗?
2015-08-10
源自:Linux C语言结构体 4-1
正在回答
int的字节数为4,char的字节数为 1,double的字节数为 8;
偏移量=5
最后一个成员的大小是8
填充字节数 =3(填充字节数=最后一个成员的最小整数倍数-偏移量;偏移量必须是最后一个成员的整数倍,不然就得填充字节,比如这里最后一个成员的大小是8,那么8的最小整数倍是8,所以8-3=5)
内存大小=5+8+3=16
4+4+8
char后面要做字节对齐,空三个字节double开始
一叶知秋zxw 提问者
举报
C语言的深入,帮助小伙伴们进一步的理解C语言,赶紧看过来
2 回答共用体所占内存大小问题
3 回答结构体指针
1 回答虚数类型结构体
1 回答结构体概念的理解
3 回答为什么可以在结构体里面声明一个结构体指针呢