## 在C语言中的用法

记录一个开发日常
用##统一某类函数的名字
H文件

//统一解包函数定义
#define DEF_PARSE(name)  \
ParseRet Parse##name (uint8_t *p_mes,uint8_t len_mes)
//统一打包函数定义
#define DEF_PACK(name)   \
PackRet Pack##name ()

//统一解包函数名格式
#define PARSE(name)      \
Parse##name
//统一打包函数名格式
#define PACK(name)       \
Pack##name

//指令解析函数返回值
typedef int ParseRet;
//指令打包函数返回值
typedef int PackRet;
//指令解析函数  p_mes:消息体   mes_len:消息体的长度
typedef ParseRet (* ParseFun)(uint8_t *p_mes,uint8_t len_mes);
//指令回复函数
typedef PackRet (* PackFun)();

//指令表
typedef struct {
    const uint16_t cmd;         //指令
    ParseFun parse;           //指令解析函数
    PackFun pack;             //指令回复函数
    const uint8_t packLen;                      
}CmdNode;

C文件

/*--------------------------------------
函数功能: 回复获取设备信息
---------------------------------------*/
DEF_PACK(ReplyGetDevMess)
{
	........
    return 0;
}
/*--------------------------------------
函数功能: 解析获取设备信息 
---------------------------------------*/
DEF_PARSE(GetDevMess)
{
	.......
return 0;
}

CmdNode g_CmdTable[] =
{
   {GET_DEV_MESS,           PARSE(GetDevMess),       PACK(ReplyGetDevMess),   55},
};
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值