转载至:https://www.cnblogs.com/csyisong/archive/2009/01/09/1372363.html
可以使用typedef为复杂的声明定义一个新的简单的别名。
方法是:在原来的声明里逐步用别名替换一部分复杂声明,如此循环,把带变量名的部分留到最后替换,得到的就是原声明的最简化版。
举例1:
<1>原声明
void (*b[10]) (void (*)());
<2>变量名为b,先替换右边部分括号里的,pFunParam为别名一:
typedef void (*pFunParam)();
<3>再替换左边的变量b,pFunx为别名二:
typedef void (*pFunx)(pFunParam);
<4>原声明的最简化版:
pFunx b[10];
举例2:
<1>原声明
doube(*)() (*e)[9];
<2>变量名为e,先替换左边部分,pFuny为别名一:
typedef double(*pFuny)();
<3>再替换右边的变量e,pFunParamy为别名二
typedef pFuny (*pFunParamy)[9];
<4>原声明的最简化版:
pFunParamy e;