消息处理demo

#include<stdio.h>

#define STATE_1  0x0
#define STATE_2	 0x1

#define TRUE     0x1
#define FALSE    0x0

#define GET_MSG_BODY(demo_msg)   (VOID_PTR)demo_msg.msg_body

typedef void (*demo_test_func)(int);
typedef void *	VOID_PTR;

typedef struct demo_msg_tag{
	
	int msg_type;
	VOID_PTR  msg_body;
	demo_test_func test_entry;
}demo_msg_t;


typedef struct demo_msg_body1_tag{
	int msg_body;
}demo_msg_body1_t;


typedef struct demo_msg_body2_tag{
	int msg_body;
}demo_msg_body2_t;

void demo_test1(demo_msg_body1_t *msg_body){
	
	printf("demo test1 : %d\n",msg_body->msg_body);
}

void demo_test2(demo_msg_body2_t *msg_body){
	
	printf("demo test2 : %d\n",msg_body->msg_body);
}


void demo_test_schd(demo_msg_t demo_msg){
		
	VOID_PTR msg_body;
	msg_body = GET_MSG_BODY(demo_msg);
	
	switch(demo_msg.msg_type){
		
		case STATE_1:
			demo_test1((demo_msg_body1_t *)msg_body);
			break;
		case STATE_2:
			demo_test2((demo_msg_body2_t *)msg_body);
			break;
			
		default:
			printf("	default");
			break;		
	}	
}

int main(int argc,char **argv){
	
	demo_msg_t demo_msg;	
	demo_msg_body1_t demo_msg_body1;
	
	demo_msg_body1.msg_body = 1000;
	
	demo_msg.msg_type = STATE_2;
	demo_msg.msg_body = (VOID_PTR)(&demo_msg_body1);
	
	demo_test_schd(demo_msg);
	
	return 0;
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值