11.30的视频
1.结构体可以这样重新赋值
注:字符数组不能用=来赋值
2.匿名结构体重新赋值方法:
注:在创建x时就已经使用过一次匿名结构体了
但是,在使用匿名结构体时,可以一次性创立多个变量
3.结构体内存对齐和对其规则详细搜:
4.总之,我们在创建结构体时,要将占用空间小的成员集中在一起
5.结构体传参的时候最好传地址
6.结构体位段例子搜:
7.位段的出现是为了节省空间
8.位段的具体搜:
(有关于内存分配的,还有关于 : 后边的数字含义的)
9.位段内部没有高地址和低地址之分(但第一个字节肯定小)
10.位段的跨平台问题:搜:
11.位段的应用:搜:
12.位段使用的注意事项:搜
13.我们通常用的结构体还有:联合和枚举
14.联合体的特点是所有成员共用同一块内存空间
15.联合体和结构体大致一样,也是由一个或者多个成员组成,这些成员可以是不同的类型
,但是在联合体中编译器只为最大的成员分配足够的内存空间
16.联合体和结构体的具体区别搜
17.位段不能取地址
但结构体可以
联合体也可以
18.联合体的成员公用一块空间
19.对联合体的一个成员进行更换的时候,其它成员也会跟着更换
所以我在使用一个成员的时候,不会使用另一个成员
20.小端存放的话:低地址放在低位,高地址放在高位
21.联合体的大小至少是最大成员的大小,
但不一定就是最大成员的大小
当最大成员的大小不是最大对齐数的大小的时候,就要对齐到最大对齐数的整数倍
注:VS的默认最大对齐数是8,可以更改
22.如果是数组的话,按照元素来算它的对齐数
例:
char c[5]
中,它的char是1,所以他的对齐数是1
例2:
23.联合体也存在对齐
24.使用联合体可以节省空间
25.有匿名联合体
26.结构体内部成员在创建时,分配到的地址连续
27.结构体的重新赋值方法搜
28.判断当前机器是大端或小端的方法搜
29.枚举是一一列举
关键字是:enum
30.枚举的举例引用搜
31.枚举的优点搜:
32.尽量少用#define