嵌入式培训-Linux系统及C编程高级-DAY14-C共用体和枚举
共用体
共用体的应用场景
1.
通信时: 如果不确定发送的包的格式,可以定义几种格式的包,收到包之后就可以直接根据包的格式取出数据。
union Data{ ? ?
int i; ? ?
float f; ? ?
char str[9]; ? ?
double d;
}data;
2.
数据比较大时: 不会同时使用,比如一个表示老师,一个表示学生,如果要统计教师和学生的情况用结构体的话就有点浪费了!用共用体的话,只占用最长的那个数据结构所占用的空间,就足够了!--节省空间
共用体的概述
?在C语言中,不同数据类型的数据可以使用共同的存储区域,这种数据构造类型称为共用体,简称共用,又称联合体。
共用体在定义、说明和使用形式上与结构体相似。两者在本质上的不同仅在于使用你内存的方式上
共用体的定义
语法:
union ?共用体名
{ ?? ?
共用体成员列表
};
共用体的使用
?union ?共用体名 ?变量名 ?
union ?共用体名 ?变量名 = {成员值} ?
定义共用体时顺便创建变量
由于共用体是内部几个成员共同使用空间,因此用哪个就打印哪个,
共用体的大小.
要能包含单个最大元素,同时还能被其他元素整除。比如int a;char c[7];的大小是8,要大于7字节的char c[7],还要是int 4字节的整数倍。
枚举的概述
C语言中构造类型之一 在开发中,有些变量只有几种可能的取值,比如:一周有七天、一年有四季、在枚举的定义中,会将变量一一列出来。
枚举的定义
语法:
enum ?枚举名
{ ?? ?
枚举成员列表
};
枚举的使用
?enum ?枚举名 ?变量名 ?
enum ?枚举名 ?变量名 = 枚举常量
?定义枚举时顺便创建变量
枚举的特点
?默认第一个成员从0开始,后面成员依次+1 ?
有特定值的成员后面,从特定值开始依次+1 ?
同一个枚举类型中,成员值可以相同 ?
不同的枚举类型中,成员名不可以一样
typedef关键字
typedef关键字的作用
?typedef是在计算机编程语言中用来为复杂的声明定义简单的别名 ?
可以是内部数据类型也可以是自定义数据类型
typedef关键字的意义
?给变量一个易记且意义明确的新名字 ?
简化一些比较复杂的类型声明。
typedef关键字的使用
基本语法: ??
?typedef ? <已有数据类型> ? <新数据类型>;
如: ?? ?
typedef ? int ?INTEGER;
这里新定义了数据类型INTEGER, 其等价于int ??
?INTEGER ?i; ? ?<==> ?int ? i;
?简单的新名字:
typedef unsigned char u_int8; ? ? ? ? //8位无符号数
typedef unsigned short int u_int16; //16位无符号数
typedef unsigned int u_int32; ? ? ? ? ?//32位无符号数 ?
化繁为简:
typedef ? struct ?_node_ { ? ?
?int ?data; ? ?
?struct _node_ ?*next;
} listnode, *linklist;
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!