当前位置: 代码迷 >> 驱动开发 >> 请问一c语言疑问(函数指针相关)
  详细解决方案

请问一c语言疑问(函数指针相关)

热度:5562   发布时间:2013-02-26 00:00:00.0
请教一c语言疑问(函数指针相关)
__Handler = (void (*)(void)) VICVectAddr[irq_no];

_Handler是已定义的一个无返回值无参数的函数指针,后面给赋值的看不懂,是把VICVectAddr[irq_no]这个数组元素强制转化为一个无返回值无参数的函数指针?还是转化为这样一个函数指针的地址?

------解决方案--------------------------------------------------------
__Handler = (void (*)(void)) VICVectAddr[irq_no];
__Handler();

==>你这样看就可以了:
void * p = VICVectAddr[irq_no];
__Handler = p;
__Handler();

就是把 VICVectAddr 这个数组中,对应的 irq_no 中的那个元素取出来, 当成一个函数地址,调用这个函数。




------解决方案--------------------------------------------------------
__Handler是一个函数指针,其指向的函数地址来自于上一行的赋值,如果想知道内容,应该查在哪个地方对VICVectAddr进行初始化或者赋值了。
  相关解决方案