消息解析函数封装

#include<stdio.h>

#define GET_MSG_TYPE(msg_parse) ((msg_parse)->msg_type)
#define GET_MSG_CONT(msg_parse) ((msg_parse)->msg_cont)

typedef void * VOID_PTR;
typedef struct dl_msg_tag{
	int msg_type;
	int msg_cont;
}dl_msg_t;

typedef struct ul_msg_tag{
	int msg_type;
	int msg_cont;
}ul_msg_t;

typedef void(*msg_parsr_func)(VOID_PTR msg_body);

typedef struct msg_parsr_func_tag{
	int msg_type;
	msg_parsr_func func_enty;
}msg_parsr_func_t;

void dl_msg_parse(VOID_PTR dl_msg){
	
	dl_msg_t *dl_msg_tmp;
	dl_msg_tmp = (dl_msg_t *)dl_msg;
	
	printf("msg_type = %d\t msg_cont = %d\n",dl_msg_tmp->msg_type,dl_msg_tmp->msg_cont);
}

void ul_msg_parse(VOID_PTR ul_msg){
	
	ul_msg_t *ul_msg_tmp;
	ul_msg_tmp = (ul_msg_t *)ul_msg;
	
	printf("msg_type = %d\t msg_cont = %d\n",ul_msg_tmp->msg_type,ul_msg_tmp->msg_cont);
}

  

msg_parsr_func_t msg_parse_func_array[2]={
{-1,dl_msg_parse},
{1,ul_msg_parse},
};

int main(int argc,char **argv){
	
	dl_msg_t dl_msg = {-1,100};
	ul_msg_t ul_msg = {1 ,1000};
	
	msg_parse_func_array[1].func_enty(&dl_msg);
	
	printf("%d",GET_MSG_TYPE(&dl_msg));
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值