谁给我详细的解释下下面这两句的作用和语法,特别是 :( (void (*)(void)) (function[0][0]))(); 这语法
void * function[][2]=
{
(void *)Test_Eint, "Ext. Int ",
0,0
};
while(1)
{
( (void (*)(void)) (function[0][0]))();
}
function是一个二维数组,数组元素的类型是void *。
对function进行静态初始化时,将function[0][0]赋值为(void *)Test_Eint。Test_Eint是一个函数名,或者说是一个函数指针,被强制类型转换为void *类型的指针。
( (void (*)(void)) (function[0][0]))():首先找到function[0][0]这个数组元素,现在它是void *类型的指针;(void (*)(void)) 将该指针强制转换成一个函数指针,并表明该函数的参数类型是void,返回值也是void;最后的一对小括号,表示调用该函数,也就是调用Test_Eint。