当前位置: 技术问答>linux和unix
关于typedef的问题
来源: 互联网 发布时间:2017-01-02
本文导语: 今天在网上看到这么三行代码,查了很多资料,但还是没看懂 typedef int (*PF) (const char *, const char *); PF Register(PF pf); int (*Register (int (*pf)(const char *, const char *)))(const char *, const char *); 这一行和上面一...
今天在网上看到这么三行代码,查了很多资料,但还是没看懂
typedef int (*PF) (const char *, const char *);
PF Register(PF pf);
int (*Register (int (*pf)(const char *, const char *)))(const char *, const char *); 这一行和上面一行的作用是等价的,怎么看的啊
指向函数的指针的内容我基本了解
typedef int (*PF) (const char *, const char *);
PF Register(PF pf);
int (*Register (int (*pf)(const char *, const char *)))(const char *, const char *); 这一行和上面一行的作用是等价的,怎么看的啊
指向函数的指针的内容我基本了解
|
其实是等价的,如果前面加上typedef,所谓的等价是指对Register的声明是等价,
第一种声明是前两句,第二种声明是最后一句
函数指针并不是那么难以理解
比如 typedef orgType newType
是用newType 替代 orgType
而 typedef int (*PF) (const char *, const char *); 我们可以看作 PF 代替了应该在 PF位置的那个东西,其实就是一个函数指针。