先看一个例子:
typedef int (*pFun)(int a, int b);
pFunp FunTest;
在上边的代码中,初看会使人误解,怎么能使用函数指针pFun来声明一个类型呢?相信很多人和我都有这样同样的感受。我就先从typedef说起,使用typedef能定义新的类型
比如:
typedef int int_32;
这里int_32就是一个新的类型,虽然这个类型和int是一样的,那我们就可以将typedef的功能公式化,即:
typedef A B;其中B是依靠A而产生的新类型。
现在我们回到最上边的例子typedef int (*pFun)(int a, int b);如果按照常理理解是不是这样
typedef A B; 其中A 为int (*pFun)(int a, int b),B为空
按照这种方式那么就理解不通了。
咱们试着这样来理解typedef int(*pFun)(int a, int b);
typedef A B;其中A 为int ,B为(*pFun)(int a, int b)
这样解释就可以说明白了,就是依靠int这个类型来定义出新的类型(*pFun),那这样pFun pFunTest就可以正常理解了。