先来看一个实际的问题话说有一个项目上有4个传感器,温度,湿度,水位,光照强度,
然后呢各个传感器还有设置报警的阈值范围
一般都是这样写

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

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

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

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

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

满屏的变量......
满屏的变量......
满屏的变量......
在项目刚开始做的时候如果不能未雨绸缪.接着干下去整个程序代码别说维护了
就是接着写都让人头疼!!!满屏的变量...
然后搞C语言那帮家伙就造了个功能 struct1.结构体就是可以把变量包含到里面的东西.
struct 就代表要定义一个结构体
sensors 是这个结构体的名字
然后是一个大括号 {}
大括号里面就随意定义变量啦,我是按照前面说的需求定义的

怎么使用里面的变量呢?
注意结构体是一个数据类型!!!!就像是int char 一样的这种类型
既然是一种数据类型,那么就可以用这个数据类型定义变量
定义一个该结构体的变量

不要问我为啥要那样子定义,你去问造C语言的那帮家伙去!!!!问问他们为啥要设计成这样子!!!
然后操作结构体变量里面的成员变量


有人会问为啥是 结构体变量 中间加个点 ???
你去问造C语言的那帮家伙去!!!!问问他们为啥要设计成这样子!!!
2.其实定义结构体变量可以下面这样子

也可以定义多个


发现了没,每个结构体变量都是单独拥有结构体里面的全部成员变量.
就像是最一开始说的,如果再增加一套 温度,湿度,光照,水位传感器,
使用结构体的话只需要再定义一个结构体变量即可.
先补充下 typedeftypedef 是可以把一个数据类型取一个别的名字
typedef {数据类型} {别的名字}

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

2.给这个数据类型起一个别名
注意是三部分哈, typedef {数据类型} {别的名字}
所以 sensor 就代表了这个结构体了

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

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

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

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

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

然后是结构体指针1.结构体是一个数据类型,数据类型当然也可以定义对应的指针变量啦.
就像是int 类型可以定义 int *add; 一样


|