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

     

     

  • 相关阅读:
    html书签展示(带搜索)
    PHP 无限级分类(递归)
    文件服务器的搭建
    php swoole 和 websocket的初次碰撞
    Linux 服务管理的两种方式service和systemctl
    Jquery 代码参考
    分享几个网址二维码生成api
    WordPress 缩率图学习笔记
    Linux 究级基础入门命令整理
    ltrim的思考
  • 原文地址:https://www.cnblogs.com/stevenlaz/p/3698972.html
Copyright © 2011-2022 走看看