结构体
1.为什么需要结构体
需要一个东西来存储非常多的东西。比如生命 蓝量 坐标
2.结构体定义 赋值
struct MyStruct
{
int a;
int b;
int c;
};
int main()
{
MyStruct ac;
ac.a = 100l;
}
3.结构体在内存中的存储
4.结构体大小 结构体对齐
struct MyStruct
{
char mu;
int c;
};
内存大小 8 char 明明是1 为什么是八
是因为结构体采用了数据对齐 以空间换时间的方法
pragma pack( n )
结构体。。。
pragma pack( )
对齐参数:n为字节对齐数,其取值为1、2、4、8,默认是8。
如果这个值比结构体成员的sizeof值小,那么该成员的偏移量应该以此值为准,
即是说,结构体成员的偏移量应该取二者的最小值.
如图 只需要补一个字节就可以使效率提升
对齐原则
5.取别名
typedef
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned int DWORD;
6.给字符数组赋值
char arr[10];
strcpy(arr,"中国");
7.结构体数组
struct MyStruct
{
char mu;
int c;
};
int main()
{
MyStruct ac[10];
ac[0].c = 100;
printf("%d", ac[0].c);
}