zoukankan      html  css  js  c++  java
  • 可读性很强的C语言的函数指针定义

     

     

    通常C/C++程序里面要用到大量的指针,其语法非常难以阅读。比如下面的vp指针类型:

     

    #include <iostream>

     

    using namespace std;

     

    typedef void (*vp) (float&,float&);

     

    void foo(float &a,float &b)

    {

     

      a = a + b;

    }

     

    int main()

    {

      //

      float a=1;

      float b=2;

      vp t=&foo;

      t(a,b);

      cout << a << endl;

      cout << "Hello World!" << endl;

      return 0;

    }

     

     

     

     

    下面我们就用C自己的宏定义功能,实现其他声明的可读性加强。

     

    ====================================================================

     

    #include <iostream>

     

    using namespace std;

     

    #define DEFINE_FUNCTIONP(POINTER_NAME,RESULT_TYPE,...)

    typedef RESULT_TYPE (* POINTER_NAME) (__VA_ARGS__);

     

    DEFINE_FUNCTIONP(vp,void,float&,float&)

    //typedef void (*vp) (float&,float&);

     

    //invalid conversion from void(*) (int,int) to vp {aka void(*) (...)} -fpermissive

    //void foo(int a,int b)

    void foo(float &a,float &b)

    {

     

      a = a + b;

    }

     

    int main()

    {

      //

      float a=1;

      float b=2;

      vp t=&foo;

      t(a,b);

      cout << a << endl;

      cout << "Hello World!" << endl;

      return 0;

    }

     

     使用环境:

    qt 5.2.1

    gcc 4.8

     

     

  • 相关阅读:
    【NOIP2013】货车运输 最大生成树+LCA
    【NOIP2017】逛公园 拆点最短路+拓扑(记忆化搜索
    【NOIP2016】愤怒的小鸟 搜索
    洛谷9月月赛II 赛后瞎写
    java基础--第八天
    java基础--第七天
    Java基础--第六天
    Java基础--第五天
    Java基础---第四天
    Java基础--第三天
  • 原文地址:https://www.cnblogs.com/stevenlaz/p/3698972.html
Copyright © 2011-2022 走看看