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

     

     

  • 相关阅读:
    C# Lambda表达式 (转)
    用C#读取txt文件的方法(转)
    c#中stringbuilder的使用(转)
    c# 日期和时间的获取(转)
    C# List<T>用法 泛型 (转)
    indent format codes
    格式化输入输出 小结
    putty connection manager 一些问题的整理
    linux 网络的一些书籍
    Oracle学习笔记
  • 原文地址:https://www.cnblogs.com/stevenlaz/p/3698972.html
Copyright © 2011-2022 走看看