结构体的大小

来源:互联网 发布:淘宝客单页网站源码 编辑:程序博客网 时间:2024/05/17 21:07
#include<stdio.h>//内存对齐:不同平台内存对齐规则不统一struct A{int a;//4int b;//4};//8struct B{char a;//1+3 必须是下面数据类型的整数倍 所以+3int b;//4};//8struct C{char a;//1+1 必须是下面数据类型的整数倍 所以+1short b;//2int c;//4};//8struct D{char a;//1+3int b;//4short c;//2+6 必须是下面是数据类型的整数倍 所以+6double d;//8};//24struct E{char a;//1+1 必须是下面是数据类型的整数倍 所以+1short b;//2int c;//4double d;//8};//16  排兵布阵很重要 上面的结构体D和此结构体E数据类型一样只是顺序不一样struct F//防止定义数组{int a;//4char b;//1};//5+3 总字节数必须是单个最大数据类型的整数倍 最大数据类型是整型4字节 所以+3struct I{int a;//4struct II{float b;//4int c;//4}d;int *p;//4short e;//2};//18+2 总字节数必须是单个最大数据类型的整数倍 最大数据类型是整型4字节 所以+2