设为首页 加入收藏

TOP

C语言中一些容易被人忽略的东西 之二 [typedef 与函数的姻缘]
2014-11-23 23:18:08 来源: 作者: 【 】 浏览:2
Tags:言中 一些 容易 忽略 东西 之二 typedef 函数 姻缘
且不说typedef有多常见,最多的莫过于 typedef struct了。那么强大的类型定义符typedef也是可以用来定义函数的,您可知道?
有如下准确的代码可以说明问题:
typedef int (*MYFunc)(int x,int y);//MYFunc 即 int * Function(int x, int y) 类型指针的新名称
如果显得太过于复杂,那么,我们暂且抛去形参列表,
即 : typedef int (*MYFunc)那么MYFunc实际上就是int型指针了
接上参数列表,我们继续:
int add(int x ,int y);
MYFunc pMYFunc;
pMYFunc = add;
pMYFunc(5,6);//该处得到了我们想要的结果
很难理解对不对?
没关系,可以用这样一个不完全对的方法来稍微推下:
要理解的是pMYFunc = add;这句
我们先:MYFunc = add;//对不对?
再:*MYFunc=*add;
最终:int=*add//是不是那么有点意思?
如果我们这样:pMYFunc=&add;//这其实也是行得通的,事实上这才是原句
因为p=fun;(隐式取地址)和p=&fun(显式取地址)效果其实是一样的,可以自行 编程验证下
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇多进程访问r/w配置文件(.ini格式.. 下一篇ping命令的C语言实现(linux, IPv..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: