用回调函数联系两个模块

#ifndef _CALLBACK_H_
#define _CALLBACK_H_

struct ST
{
 ...
};
typedef void (*PFCALLBACK)(void* pArg0,void* pArg1);

void CALLBACK_start(PFCALLBACK proc,void* pArg0,void* pArg1);

#endif /*_CALLBACK_H_*/

/*-----------------------------------------------*/
/*典型的回调函数,向一个模块传递函数,该模块在适当的时候调用外部函数,在C语言中是非常实用的*/
#include "callback.h"

static PFCALLBACK gprocCallback=0;
static void* gpArg1=0;

void CALLBACK_start(PFCALLBACK proc,void* pArg0,void* pArg1)
{
 gprocCallback=proc;
 gpArg1=pArg1;
}

void CALLBACK_foo()
{
 struct ST st;
 (*gprocCallback)((void*)&st,gpArg1);
}

posted on 2009-05-29 19:39  devcfei  阅读(246)  评论(0编辑  收藏  举报