C语言第十七集(待修)

11.30的视频

1.结构体可以这样重新赋值

C语言第十七集(待修)_第1张图片

注:字符数组不能用=来赋值

2.匿名结构体重新赋值方法:

C语言第十七集(待修)_第2张图片

注:在创建x时就已经使用过一次匿名结构体了

但是,在使用匿名结构体时,可以一次性创立多个变量

C语言第十七集(待修)_第3张图片

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:

C语言第十七集(待修)_第4张图片

23.联合体也存在对齐

24.使用联合体可以节省空间

25.有匿名联合体

26.结构体内部成员在创建时,分配到的地址连续

27.结构体的重新赋值方法搜

28.判断当前机器是大端或小端的方法搜

29.枚举是一一列举

关键字是:enum

30.枚举的举例引用搜

31.枚举的优点搜:

32.尽量少用#define

33.可以使用

#prama pack(?)来重新设定对齐数

 
  

 

你可能感兴趣的:(C语言,c语言)