【嵌入式学习-C语言篇】 struct 关键词的使用

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();
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值