2016.8.15 DAGE
复习内容:c语言深度解剖笔记2
a.union联合体
union 维护足够的空间来置放多个数据成员中的“一种”,而不是为每一个数据成员配置空间,在 union 中所有的数据成员共用一个空间,同一时间只能储存其中一个数据成员,所有的数据成员具有相同的起始地址。
一个 union 只配置一个足够大的空间以来容纳最大长度的数据成员。
b.大端与小端模式
数据在内存的两种存储模式:
大端模式(Big_endian) :字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。
小端模式(Little_endian) :字数据的高字节存储在高地址中,而字数据的低字节则存放在低地址中。
c.enum枚举类型
enum 枚举名{枚举选项}定义的一个枚举变量
枚举选项部分如果没有赋值,那么会默认从0开始,如果赋值了,后面的等于前面的+1,可以给多个变量赋值,enum{A=2,B=9,C},此时a=2,b=9,c=10
枚举与#define 宏的区别:
1),#define 宏常量是在预编译阶段进行简单替换。枚举常量则是在编译的时候确定其值。
2),一般在编译器里,可以调试枚举常量,但是不能调试宏常量。
3),枚举可以一次定义大量相关的常量,而#define 宏一次只能定义一个。
枚举类型的大小,等于4字节,一个int型的大小(猜测是一个联合体的形式,都是int型变量)
d.typedef起别名
给一个已经存在的数据类型(注意:是类型不是变量)取一个别名,而非定义一个新的数据类型。
另:char *p1,p2,这时p2表示的是定义的一个字符变量