解释:int (* func (int)) (int*, int*);

hy_number_one 2006-12-16 10:31:53
rt
...全文
466 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
pluton 2006-12-18
  • 打赏
  • 举报
回复
#include <stdio.h>

typedef int (* FunctionPionter) (int, int);

int f(int a,int b)
{
printf("%d\n",a+b);
return a+b;
}

FunctionPionter func(int a)
{
printf("%d\n",a);
FunctionPionter p;
p=f;
int b=3;
p(a,b);
return p;
}

int main()
{
FunctionPionter s;
s=func(5);
printf("%d\n",s(1,2));
}
AI风 2006-12-17
  • 打赏
  • 举报
回复
刚才调试,发现一个很有意思的问题:
void SomeFunction() (int val) //注意: 不是 void SomeFunction(int val)
{
.......
}
表示这个函数的返回值的类型是void(*) void,而不是void
我是第一次看到这种用法,长见识了,谢谢楼主!!!
softwarewander 2006-12-16
  • 打赏
  • 举报
回复
呵呵, 我刚出去一会, 就讨论这么热闹阿

sopro(倾听世界) 在九楼的举例很典型

最终是个函数的声明而已
sopro 2006-12-16
  • 打赏
  • 举报
回复
对的,你这样页可以
hy_number_one 2006-12-16
  • 打赏
  • 举报
回复
哦,应给可以这样些:


void SomeFunction() (int val) // 某个函数
{
cout << val << endl;
}

int main()
{

void (* pF) (int);
pF = SomeFunction;

int val = 100;
pF(val); //相当于调用SomeFunction(val)
}


sopro 2006-12-16
  • 打赏
  • 举报
回复
不行

ps:刚才写错了,应该是:
using namespace std;

typedef void (*pFunc) (int);


void SomeFunction (int val) //这里刚才写错咯
{
cout << val << endl;
}

int main()
{
pFunc pF = SomeFunction;

int val = 100;
pF(val);
}
lei001 2006-12-16
  • 打赏
  • 举报
回复
函数指针,返回值int,参数int
hy_number_one 2006-12-16
  • 打赏
  • 举报
回复
可以这样些不:
typedef (void () (int))*pF;

void SomeFunction() (int val) // 某个函数
{
cout << val << endl;
}

int main()
{
pF = SomeFunction;

int val = 100;
pF(val); //相当于调用SomeFunction(val)
}
sopro 2006-12-16
  • 打赏
  • 举报
回复
举个例子好了

typedef void (* pFunc) (int);

void SomeFunction() (int val) // 某个函数
{
cout << val << endl;
}

int main()
{
pFunc pF = SomeFunction;

int val = 100;
pF(val); //相当于调用SomeFunction(val)
}
laiwusheng 2006-12-16
  • 打赏
  • 举报
回复
返回值为int 型
laiwusheng 2006-12-16
  • 打赏
  • 举报
回复
int (* func (int)) (int*, int*);
想当于
typedef int (* func(int)) (int*, int*);
func f(int);
ls 正确,函数声明
hy_number_one 2006-12-16
  • 打赏
  • 举报
回复
嘿嘿,是你另外一个帖子里面写的
大哥,我就是不小的返回的是个什么指针啊?说明白,详细,清晰一点可以不?
sopro 2006-12-16
  • 打赏
  • 举报
回复
typedef int (* FunctionPionter) (int*, int*)
FunctionPointer func(int)

知道了把,就是一个函数声明而已,只不过是返回指比较特殊,是个函数指针而已^_^
sopro 2006-12-16
  • 打赏
  • 举报
回复
。。。
这个是我在另外一个帖子里面写的把。。。

69,379

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧