用回调函数联系两个模块

#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);
}
原文地址:https://www.cnblogs.com/iwasmu/p/1491806.html