消息解析函数封装

    xiaoxiao2022-07-06  216

    #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; }

     

    最新回复(0)