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