__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进行初始化或者赋值了。