函数指针的声明形式:
void (*pFunction)(),当然,没有参数的情况下也可写成void (*pFunction)(void)的形式。那么pFunction函数指针的原型就是
void (*)(void),即把变量名去掉,因此,对于一个给定的entry地址,要把它转换成为函数指针,就是
(void (*) (void))entry
对于函数指针的调用,ANSI C认为 pFunction()和*pFunction()都是正确的,所以
((void (*) (void))(entry))();
就形成一个函数调用。
又如:
void*pVoid;
T_InputEvent tInputEvent;
/*定义函数指针 */
int(*GetInputEvent)(PT_InputEvent ptInputEvent);
GetInputEvent= (int (*)(PT_InputEvent))pVoid; //强制转换为函数指针
GetInputEvent(&tInputEvent);//函数调用