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

     

     

  • 相关阅读:
    下载文件
    Cookie方法
    阿拉伯数字转大写
    格式化日期
    正向代理与反向代理
    get post 区别
    gulp
    什么是javascript中的同步&&异步?
    懒加载
    js操作dom时发生了什么?
  • 原文地址:https://www.cnblogs.com/stevenlaz/p/3698972.html
Copyright © 2011-2022 走看看