c++技巧---函数指针的繁琐语法
帐 号: 注册帐号
密 码:  找回密码
      记住用户名和密码
c++技巧---函数指针的繁琐语法

你能告诉我下面定义的含义么?

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号