嵌入式培训-Linux系统及C编程高级-DAY14-C共用体和枚举

2023-12-14 22:12:24

共用体

共用体的应用场景

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;

文章来源:https://blog.csdn.net/ZhangPuYue0228/article/details/134918048
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。