这家伙又emo了 2021-05-10 11:10 采纳率: 84.6%
浏览 61
已采纳

typedef问题(新手上路,对语法有点迷!!!)

先来个简单的

typedef int myinteger;
myinteger i;   // 相当于    int i;

这个比较好懂,直接给int这种整型类型起个别名。但一涉及到函数指针我就懵逼了,看了将近一天也有点晕,感觉懂了但还是不理解。就是向下面这个例子。

例子1

void (*b[10]) (void (*)());
typedef void (*pFun1)();
typedef void (*pFun2)(pFun1);
最简形式:pFun2 b[10];

主要不理解的地方就是怎么语法看起来这么怪呀,和上面我也感觉是有相似之处,但到底是有什么样的关联,这很令人头大。

  • 写回答

3条回答 默认 最新

  • 快乐鹦鹉 2021-05-10 11:17
    关注

    typedef void (*pFun1)();==用pFun1表示一个无参数,返回类型为void的函数指针

    typedef void (*pFun2)(pFun1);==用pFun2表示一个参数是pFun1,返回类型为void的函数指针

    void (*b[10]) (void (*)());==b[10]表示10个参数是void(*)()类型的函数指针,返回值为void的函数指针

    void(*)()参数类型就是typedef 定义的pFun1,b[10]的元素就是pFun2表示的函数指针,所以可以 pFun2 b[10]来定义

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?