| 先来看一个实际的问题话说有一个项目上有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; 一样
 
  
 
 
  
 
 
 
 |