转载至: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;