struct 关键词的使用
struct的使用场景
售货机:设备所有资源管理(设备状态、网络状态、电机状态、传感器状态、订单状态等等,即使用struct关键字定义一个结构体来记录一些状态和方法,而这些状态和方法通常是同时存在的,和面对对象中的类差不多一个概念,但是也有区别)
这里里面有个回调函数的概念,之后会单独写一篇文章细讲,其余的都是简单的概念性知识
#include <stdio.h>
typedef enum{
NET_INIT = 0,
NET_CONNECTING,
NET_CONNECT_SUCCESS,
NET_CONNECT_FAIL,
NET_ERROR,
}E_NET_STATUS;
typedef struct {
int num;
int time;
int money;
}T_Pay;
typedef struct {
int system_status;
E_NET_STATUS net_status;
int motor_status[4];
int pay_status;
T_Pay m_Pay;
void (*statusCallbackfunc)();
}T_Device;
T_Device device;
void main(){
device.net_status = NET_INIT;
device.m_Pay.num = 1;
printf("net status = %d\n", device.net_status);
// 回调函数的实现
void myCallback() {
printf("Callback function called with result\n");
}
device.statusCallbackfunc = myCallback;
// 在需要的时候调用函数指针
if (device.statusCallbackfunc != NULL) {
device.statusCallbackfunc();
}
}