当前位置:编程学习 > C/C++ >>

C语言中一些容易被人忽略的东西 之二 [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(显式取地址)效果其实是一样的,可以自行编程验证下
补充:软件开发 , C语言 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,