当前位置: 代码迷 >> 综合 >> 函数指针的强制转换
  详细解决方案

函数指针的强制转换

热度:48   发布时间:2023-10-18 10:53:13.0

函数指针的声明形式:
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);//函数调用

  相关解决方案