zoukankan      html  css  js  c++  java
  • 函数指针

    之前经常见到这样的代码:

    typedef int (*Func)(int a ,int b);

    一开始不知道这是什么意思,每次翻阅资料和各位大牛博客之后一目了然,但是过了一段时间又忘记了,归根结底是当时学C的时候就没有重视这基础,再加上后来练习的越来越少,更是蒙了。

    于是记录在这里自己的想法,以后晚上睡前来看看,毕竟温故而知新,当然还得多加练习。

    这个typedef定义的是一个函数指针,Func指针名可以指向一个二参返回int类型的函数。

    最简单的,声明定义一个函数如下:

    int add(int a,int b){return a+b;}

    在main函数中执行如下操作:

    Func fun = &add;(函数指针指向add函数地址)

    接下来就可以这样用了:

    int sum = fun(1,2);

    输出sum值,就是3,即1与2的和。

    在实践过程中,还遇到过类似如下的一个接口定义:

    void setFunc(Func fun);

    我遇到这种场景,Func是一个回调方法,不过同样的道理,如果我想把add函数传入上式,很简单:

    setFunc(add);

    刚才提到了回调,不得不说回调真是实际项目中最常用的方法之一,查阅了很多资料,师兄给我非常详细的讲了很久之后,我自己写了一个回调,才恍然大悟,之后写一个关于回调的知识点。
  • 相关阅读:
    pat00-自测5. Shuffling Machine (20)
    Spiral Matrix
    Search in Rotated Sorted Array II
    Search in Rotated Sorted Array
    Best Time to Buy and Sell Stock II
    4Sum
    3Sum Closest
    3Sum
    MySQL存储过程、函数和游标
    Word Ladder
  • 原文地址:https://www.cnblogs.com/zzdbullet/p/9949761.html
Copyright © 2011-2022 走看看