谁给我详细的解释下下面这两句的作用和语法,特别是 :( (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。
打赏帖 | |
---|---|
【Zephyr】使用Zephyr外设初始化过程解析被打赏30分 | |
【S32K146】S32DS watchdog 配置使用被打赏20分 | |
【Zephyr】使用 IAR 调试 Zephyr 镜像被打赏20分 | |
赚取电动螺丝刀+电源电路理论知识分享1被打赏5分 | |
我想要一部加热台+分享常见运算放大器电路的应用被打赏5分 | |
【Zephyr】MCXN947 Zephyr 开发入门适配shell被打赏20分 | |
我想要一部加热台+常见的MOS管驱动电路被打赏5分 | |
【我要开发板】6.联合MATLAB记录数据被打赏50分 | |
【换取手持数字示波器】MicrochipMPLABHarmony框架下串口调试printf输出记录被打赏29分 | |
【瑞萨RA2E1开发板】:使用ADC功能实现位移传感器采集方案被打赏20分 |