typedef和函数指针

来源:互联网 发布:ember.js 下载 编辑:程序博客网 时间:2024/05/12 03:10

先看一个例子:

    typedef  int (*pFun)(int a, int b);

    pFunpFunTest;

在上边的代码中,初看会使人误解,怎么能使用函数指针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就可以正常理解了。