首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

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

2013-02-19 
请教一c语言疑问(函数指针相关)__Handler (void (*)(void)) VICVectAddr[irq_no];_Handler是已定义的一

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

热点排行