<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; 一样