谁给我详细的解释下下面这两句的作用和语法,特别是 :( (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。
我要赚赏金打赏帖 |
|
|---|---|
| 【S32K3XX】LPSPI参数配置说明被打赏¥21元 | |
| 在WT9932C61-TINY上实现超声波测距被打赏¥22元 | |
| 基于WT9932C61-TINY的环境构建及OLED屏驱动测试被打赏¥20元 | |
| 【S32K3XX】Core-to-Core 中断使用被打赏¥21元 | |
| 「AI编程记录--含源码」用一晚上的时间写一个esp32的示波器被打赏¥19元 | |
| STM32C0116DK开发探索记(3)被打赏¥30元 | |
| STM32C0116DK开发探索记(2)被打赏¥24元 | |
| STM32C0116DK开发探索记(1)被打赏¥29元 | |
| 谨防极海G32M3101电机评估板易跌落的陷阱被打赏¥24元 | |
| 【全网首拆】M5STACK ATOM系列开发板拆解 / AtomS3R-CAM摄像头更换方法(提高10倍像素)被打赏¥26元 | |