这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » [求助] C 问题

共4条 1/1 1 跳转至

[求助] C 问题

菜鸟
2007-04-07 16:35:01     打赏

谁给我详细的解释下下面这两句的作用和语法,特别是 :( (void (*)(void)) (function[0][0]))(); 这语法

void * function[][2]=
{
(void *)Test_Eint, "Ext. Int ",
0,0
};

while(1)
{
( (void (*)(void)) (function[0][0]))();
}




关键词: 求助     问题    

菜鸟
2007-04-07 17:16:00     打赏
2楼

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。


菜鸟
2007-04-07 20:05:00     打赏
3楼

大概理解了,非常感谢!


菜鸟
2007-04-08 03:02:00     打赏
4楼
void可以做数据类型吗?请指点.

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]