你能告诉我下面定义的含义么?
void (*p[10]) (void (*)());
p是“一个包含10个函数指针的数组,这些函数返回为空,其参数为{【(另外一个无参数返回为空)的函数】的指针}。”如此繁琐的语法几乎难以辨认,难道不是吗?解决之道在何方?你可以通过typedef来合理地大大地去简化这些声明。首先,声明一个无参数、返回空的函数的指针的typedef,如下所示:
typedef void (*pfv)();
接下来 声明另一个typedef,一个指向参数为pfv返回为空的函数的指针:
typedef void (*pf_taking_pfv) (pfv);
现在,再去声明一个含有10个这样指针的数组就变得轻而易举,不费吹灰之力了:
pf_taking_pfv p[10]; /*等同于void (*p[10]) (void (*)()); 但更具可读性*/
copyright:2016-2020|邮箱:imalib@vip.163.com
蜀ICP备16020986号