| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 442 人关注过本帖
标题:函数指针的问题
只看楼主 加入收藏
hao0716
Rank: 4
等 级:业余侠客
威 望:1
帖 子:354
专家分:224
注 册:2006-4-11
收藏
 问题点数:0 回复次数:3 
函数指针的问题

看了半天实在没太懂 不知道这函数指针到底有什么作用哦 请大大们解答下
问题在注释部分

#include<stdio.h>
#define MAX 100

typedef char *(*PtoFun)();

main()
{
void *call(PtoFun);//PtoFun应该是类型不是参数吧,为什么可以这么写?
PtoFun RtnFunc();

printf("%s",call(RtnFunc()));//直接写一个printf不行么?好象条件都具备了
return 0;
}

char *hello()
{
return "Hello World!\n";
}

PtoFun RtnFunc()
{
return hello;//return是为什么了声明么?
}

void *call(PtoFun func)
{
return (*func)();//return 这个有什么用?做声明?
}

搜索更多相关主题的帖子: 指针 函数 
2007-01-15 11:31
kelifei
Rank: 1
来 自:UESTC
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-5-11
收藏
得分:0 

#include<stdio.h>
#define MAX 100

typedef char *(*PtoFun)();//定义函数指针

main()
{
void *call(PtoFun);//PtoFun应该是类型不是参数吧,为什么可以这么写?//函数声明,是可以在main里面的,只要在调用之前就可以。
PtoFun RtnFunc();

printf("%s",call(RtnFunc()));//直接写一个printf不行么?好象条件都具备了//函数调用,调用call(RtnFunc()),把RtnFunc()以函数指针作为实数。
return 0;
}

char *hello()
{
return "Hello World!\n";
}

PtoFun RtnFunc()
{
return hello;//return是为什么了声明么?//不是为了声明,就是调用 hello 函数的地址就是char *hello()
}

void *call(PtoFun func)
{
return (*func)();//return 这个有什么用?做声明?//不是为了声明,就是调用 (*func)() 函数的地址就是PtoFun RtnFunc()


}
是两次函数指针的调用


-DFAE -DESS -DDVD -DMTK  -DDVR -DDECODE -DMSTAR -DPMP我决定在论坛潜水3年又3年!
2007-01-15 13:46
hao0716
Rank: 4
等 级:业余侠客
威 望:1
帖 子:354
专家分:224
注 册:2006-4-11
收藏
得分:0 
感谢LS的回答 , 还是比较迷糊啊 我继续看看
不过还有问一下 函数指针有什么作用?在什么情况下要使用呢?

2007-01-15 14:47
kelifei
Rank: 1
来 自:UESTC
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-5-11
收藏
得分:0 
函数指针可以用来调用函数,,不过它最常用的功能就是做为把函数指针作为参数传递给其它函数。

一般单片机里面的中断程序就是以函数指针来调用。

-DFAE -DESS -DDVD -DMTK  -DDVR -DDECODE -DMSTAR -DPMP我决定在论坛潜水3年又3年!
2007-01-15 16:26
快速回复:函数指针的问题
数据加载中...
 
   



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

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