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