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

     

     

  • 相关阅读:
    .net 调用SAP RFC的几种方法
    SAP FI 科目代码
    FI 常用表
    SD 相关表
    20170328 技巧-记事本001
    20170326 ABAP调用外部webservice实例
    20170326 ABAP调用外部webservice 问题
    20170325 ABAP调用webservice
    SAP 第四代增强-BTE
    经济学中的破窗理论
  • 原文地址:https://www.cnblogs.com/stevenlaz/p/3698972.html
Copyright © 2011-2022 走看看