请教void_fp 与 void (*)() 有什么区别?
本帖最后由 zhan2905 于 2013-4-18 16:04 编辑(*((void_fp)(*IntupFunPtr)))(); *IntupFunPtr指向一个数组
((void (*)())(AirconCmdFunArray))();
(*((void (*)())(*IntupFunPtr)))();
总之可以这样说就是 我看不懂 但是我感觉 void_fp 与 void (*)() 是等价 的
求这两个的 使用方法 与解析 你的void_fp是什么意思,怎样定义的,看字面意思是指向函数的指针(没指明类型),不知道有没有说对。void(*)()表示该函数返回任意类型的指针,我感觉二者是等价的,不知道说没说对,仅供参考。 void_fp 这个东西 貌似是 keil里面特有的 以前在 有关keil详解里面 见过 不过 印象不深了! 有米有人 懂滴呀! typedef void (*void_fp)(); /*
** 个人见解, 仅供参考. 如有错误, 还望指出.
*/
// 这个void_fp 可能是 typedef void (* void_fp)(void); LZ 能找到不?
1. (*((void_fp)(*IntupFunPtr)))(); // 楼主: " *IntupFunPtr 指向一个数组", 是数组的首地址吧?
// 这是个函数指针数组, 数组成员都是指向 void func(void) 类型函数的指针
2. ((void (*)())(AirconCmdFunArray))();// 根据 AerConCommand 值调用数组内对应的函数执行.
// 这个 IntupFunPtr 是一个函数的入口地址, 在这里强制转换成
// 无输入无输出的函数类型. 最左边的 '*' 表示执行这个函数.
3. (*((void (*)())(*IntupFunPtr)))(); // 这个和第一句应该是一样的意思.
页:
[1]