标题:大家帮忙看下我这个问题!谢了!
只看楼主
songhuirong1
Rank: 2
等 级:论坛游民
帖 子:116
专家分:38
注 册:2010-6-15
结帖率:94.12%
 问题点数:0 回复次数:3 
大家帮忙看下我这个问题!谢了!
下列声明的类型是什么?
void (*(*papf)[2])(int);
怎样用typedef 名字来使这些声明更容易阅读?
搜索更多相关主题的帖子: 声明 阅读 
2011-08-06 07:46
songhuirong1
Rank: 2
等 级:论坛游民
帖 子:116
专家分:38
注 册:2010-6-15
得分:0 
哦。我知道了。这个类型是“指向函数指针数组的指针”,可以如下声明:
程序代码:
void f1(int) {}
void f2(int) {}

typedef void (*PF)(int);
PF s[2] = {f1,f2};
PF (*p)[2] = &s;
应该是这样的。
2011-08-06 08:09
jcw08120110
Rank: 8Rank: 8
来 自:南京
等 级:蝙蝠侠
帖 子:272
专家分:742
注 册:2009-6-8
得分:0 
*papf 这是一个指针 ;(*(*papf)[2]) 这个是一个指向含有2个指针元素的指针; void XX(int);这个是一个函数声明;
void (*(*papf)[2])(int); 这个是一个指向含有函数的指针数组的指针函数声明; 他有一个参数没有返回值;  

君生我未生 我生君以老
2011-08-09 15:20
jcw08120110
Rank: 8Rank: 8
来 自:南京
等 级:蝙蝠侠
帖 子:272
专家分:742
注 册:2009-6-8
得分:0 
这首先是一个函数; 不过函数名是一个指针; 所以叫做指针函数;它指向的是一个数组,这个数组指向2个函数;
如果使用 自定义类型; 反过来定义 先自定义一个指向函数的数组; 再定义一个指向这种数组的指针;

君生我未生 我生君以老
2011-08-09 15:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-346907-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.139396 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved