OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2933|回复: 4

typedef void ( *VFUNC)(void);

[复制链接]

37

主题

204

帖子

0

精华

高级会员

Rank: 4

积分
717
金钱
717
注册时间
2016-6-10
在线时间
191 小时
发表于 2017-9-9 19:41:30 | 显示全部楼层 |阅读模式
50金钱
typedef void ( *VFUNC)(void);

想问一下这个函数指针的类型宏定义要怎么解释呀。为什么会这样写void 和( *VFUNC)(void)之间有空格怎么理解??求大神详解。。。

最佳答案

查看完整内容[请看2#楼]

函数指针是指向函数的指针变量,他的本质是一个指针变量 void (*VFUNC)(void); 是定义一个函数指针 typedef void (*VFUNC)(void); 是类型定义一个函数指针,这样的写法虽然很难看,但是C的标准就是这样的 这样的好处是你可以通过指针传递,让一个句代码可以执行不同的函数。 [mw_shl_code=c,true]typedef void (*VFUNC)(void); void myfun(void); VFUNC fun=myfun; fun();[/mw_shl_code]
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
164
金钱
164
注册时间
2015-5-14
在线时间
17 小时
发表于 2017-9-9 19:41:31 | 显示全部楼层
函数指针是指向函数的指针变量,他的本质是一个指针变量
void (*VFUNC)(void); 是定义一个函数指针
typedef void (*VFUNC)(void); 是类型定义一个函数指针,这样的写法虽然很难看,但是C的标准就是这样的
这样的好处是你可以通过指针传递,让一个句代码可以执行不同的函数。

[mw_shl_code=c,true]typedef void (*VFUNC)(void);
void myfun(void);
VFUNC fun=myfun;
fun();[/mw_shl_code]

回复

使用道具 举报

2

主题

685

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3448
金钱
3448
注册时间
2017-7-4
在线时间
869 小时
发表于 2017-9-9 23:48:31 | 显示全部楼层
1、typedef是声明一个新类型或者说一个类型别名,如typedef int byte_32;byte_32 即表示int类型;
2、void ( *VFUNC)(void);表示一个函数指针,该指针指向一个函数,该函数参数为空(void),无返回类型;加上typedef即声明一个函数指针类型“VFUNC”,这样就可以用“VFUNC”定义函数指针;如VFUNC fun0;函数指针也是指针,必须指向函数实体才能使用,函数实体必须与函数指针的参数一致,包括函数参数、返回值等;
3、函数指针也是C语言的重难点,在操作系统上会经常遇到。
回复

使用道具 举报

37

主题

204

帖子

0

精华

高级会员

Rank: 4

积分
717
金钱
717
注册时间
2016-6-10
在线时间
191 小时
 楼主| 发表于 2017-9-10 14:52:40 | 显示全部楼层
是的是的,一开始我是把它当成一个类型宏定义来看,怎么看怎么别扭
回复

使用道具 举报

37

主题

204

帖子

0

精华

高级会员

Rank: 4

积分
717
金钱
717
注册时间
2016-6-10
在线时间
191 小时
 楼主| 发表于 2017-9-10 14:53:00 | 显示全部楼层
aseeman 发表于 2017-9-9 19:41
函数指针是指向函数的指针变量,他的本质是一个指针变量
void (*VFUNC)(void); 是定义一个函数指针
typed ...


是的是的,一开始我是把它当成一个类型宏定义来看,怎么看怎么别扭
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 00:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表