zoukankan      html  css  js  c++  java
  • typedef void (*funcptr)(void) typedef void (*PFV)(); typedef int32_t (*PFI)();

    看到以下代码,不明白查了一下:

    /** Pointer to Function returning Void (any number of parameters) */
    typedef void (*PFV)();
    
    /** Pointer to Function returning int32_t (any number of parameters) */
    typedef int32_t (*PFI)();
    定义一个函数指针类型。
    比如你有三个函数:
    void hello(void) { printf("你好!"); }
    void bye(void) { printf("再见!"); }
    void ok(void) { printf("好的!"); }
    
    typdef void (*funcptr)(void);
    这样就构造了一个通用的函数
    你用的时候可以这样:
    void speak(int id)
    {
       funcptr words[3] = {&hello, &bye, &ok};
       funcptr fun = words[id];
       (*fun)();
    }
    这样的话,如果speak(0)就会显示“你好!”
    speak(1)就会显示“再见!”
    speak(2)就会显示“好的!”

    用于处理参数和返回值的形式都一样,但是功能不确定的一组函数,可以使用函数指针。

    比如算术运算符,加、减、乘、除,都可以用typedef int (*calc)(int,int)代表,等等
  • 相关阅读:
    应用程序跳转
    百度地图集成
    导航 -MapKit
    导航
    定位
    ApexSql Log使用体会
    Oracle学习 第16天
    上来冒个泡吧
    Oracle学习 实战心得总结
    好久没上来冒个泡了,整整一个半月
  • 原文地址:https://www.cnblogs.com/qiyuexin/p/8343286.html
Copyright © 2011-2022 走看看