《C缺陷和陷阱》讲过的一种方法:
( *(void (*)()) 0)(); //跳转到0地址执行
解析:
1.void (*p_fun)(void); //声明函数指针
2.void (*)(void)函数指针类型,(void (*)(void))0,将产量0强制转换成函数指针;
3.(*(void (*)(void))0)();引用函数指针;
另外一种使用方法:
函数指针调用可以略写*强制转换,例如:void (*p_fun)(void);
调用时
*p_fun(); 等同p_fun();
所以两外一种书写方法:((void (*) (void))0)();
文章评论(0条评论)
登录后参与讨论