学习C语言-学习结构体

<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/LearnC" frameborder="0" scrolling="auto" width="100%" height="500"></iframe></p>

先来看一个实际的问题

话说有一个项目上有4个传感器,温度,湿度,水位,光照强度,

然后呢各个传感器还有设置报警的阈值范围

一般都是这样写

然后项目上还需要记录其它变量

然后过了几天又增加了个PH值的传感器

然后过了几天,每个传感器还需要加个是不是正常工作的标志

然后又增加了5个传感器 温度,湿度,水位,光照强度,PH

然后又增加了5个传感器 温度,湿度,水位,光照强度,PH

截图截不开了....

满屏的变量......

满屏的变量......

满屏的变量......

在项目刚开始做的时候如果不能未雨绸缪.接着干下去整个程序代码别说维护了

就是接着写都让人头疼!!!满屏的变量...

然后搞C语言那帮家伙就造了个功能 struct

1.结构体就是可以把变量包含到里面的东西.

struct 就代表要定义一个结构体

sensors 是这个结构体的名字

然后是一个大括号 {}

大括号里面就随意定义变量啦,我是按照前面说的需求定义的

怎么使用里面的变量呢?

注意结构体是一个数据类型!!!!就像是int char 一样的这种类型

既然是一种数据类型,那么就可以用这个数据类型定义变量

定义一个该结构体的变量

不要问我为啥要那样子定义,你去问造C语言的那帮家伙去!!!!问问他们为啥要设计成这样子!!!

然后操作结构体变量里面的成员变量

有人会问为啥是 结构体变量 中间加个点 ???

你去问造C语言的那帮家伙去!!!!问问他们为啥要设计成这样子!!!

2.其实定义结构体变量可以下面这样子

也可以定义多个

发现了没,每个结构体变量都是单独拥有结构体里面的全部成员变量.

就像是最一开始说的,如果再增加一套 温度,湿度,光照,水位传感器,

使用结构体的话只需要再定义一个结构体变量即可.

先补充下 typedef

typedef 是可以把一个数据类型取一个别的名字

typedef {数据类型}  {别的名字}

注意下:

1.下面的代表了这个结构体数据类型

2.给这个数据类型起一个别名

注意是三部分哈,  typedef  {数据类型}  {别的名字}

所以  sensor 就代表了这个结构体了

3.以后定义结构体变量的时候

 4.然后呢结构体名字可以省略

结构体变量可以放任何变量(列如 int型指针)

 

结构体变量可以放任何变量(列如 函数指针)

结构体变量可以放任何变量(列如 结构体变量)

然后是结构体指针

1.结构体是一个数据类型,数据类型当然也可以定义对应的指针变量啦.

就像是int 类型可以定义 int *add; 一样

 

原文地址:https://www.cnblogs.com/yangfengwu/p/14701494.html