(c/c++)——函数指针(回调函数)

news/2024/9/8 4:50:56/

文章目录

  • 前言
  • 一、使用函数指针的三个步骤
  • 二、应用场景——回调函数


前言

函数的二进制代码存放在内存四区中的代码段,函数的地址是它在内存中的起始地址(即每个函数都有一个入口地址)。函数指针就指向这个起始地址,将函数指针作为参数,就可以调用该函数


一、使用函数指针的三个步骤

  1. 声明函数指针
    普通指针,需要给它一个类型,如 int* a 或 char* a ;同理,函数指针也需要给它一个类型。这个类型指的是函数的返回值参数类型和顺序(函数名和实参名不是。可以这样理解,指针是指向一个地址,取什么名字都行,只是一个名称罢了)

如果函数原型为:

// 下面两个函数的返回值、参数类型和顺序一样
int func1(int

http://www.ppmy.cn/news/1119036.html

相关文章

Spring事件机制之ApplicationEvent

博主介绍:✌全网粉丝4W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

打赏台多合一支付收款HTML源码

多合一打赏支付收款(微信、QQ、支付宝) 源码直接上传到空间解压缩即可访问 PS;只需要将自己的收款二维码替换即可,或用改图工具将压缩包的(二维码图片素材.zip)解压缩后,再p图 该源码全开源无…

都说测试行业饱和了,为什么我们公司给初级测试开到了12K?

故事起因: 最近我有个刚毕业的学生问我说:我感觉现在测试行业已经饱和了,也不是说饱和了,是初级的测试根本就没有公司要,哪怕你不要工资也没公司要你,测试刚学出来,没有任何的项目经验和工作经验…

vue学习-07todoList案例与浏览器本地存储

TodoList Todo List(任务列表)是一个简单的Web应用程序示例,用于管理任务、代办事项或清单。Vue.js 是一个非常适合构建这种类型应用程序的框架,因为它提供了数据绑定、组件化、响应式和轻松管理用户界面的能力。 以下是一个基本…

七天学会C语言-第五天(函数)

1. 调用有参函数 有参函数是一种接受输入参数(参数值)并执行特定操作的函数。通过向函数传递参数,你可以将数据传递给函数,让函数处理这些数据并返回结果。 例1:编写一程序,要求用户输入4 个数字&#xf…

十、阶段实践练习

阶段实践练习 1.阶段实践练习1.1.练习1~~~~象棋口诀1.2.练习2~~~~输出汇款单1.3.练习3~~~~输出个人信息1.4.练习4~~~~计算月收入1.5.练习5~~~~计算商和余数1.6.练习6~~~~判断成绩能否及格1.7.练习7~~~~话费充值1.8.练习8~~~~货车装西瓜 ———————————————————…

软件需求怎么写?

前言:一般来说,软件产品的需求人员的主要输出物就是软件需求,如果这个软件产品就XX系统,人们口中的“系统需求”和“软件需求”就没有什么区别了。在车企行业,推行这ASPICE体系,在这个体系中明确申请了系统…

[Linux入门]---Linux编译器gcc/g++使用

文章目录 1.背景知识2.gcc如何完成编译运行工作预处理(进行宏替换)编译(生成汇编)汇编(生成机器可识别代码)链接(生成可执行文件) 3.函数库动态库静态库动静态库的区别 4.gcc选项 1.…

实用的嵌入式编码技巧:第三部分

每个触发器都有两个我们在风险方面违反的关键规格。“建立时间”是时钟到来之前输入数据必须稳定的最小纳秒数。“保持时间”告诉我们在时钟转换后保持数据存在多长时间。 这些规格因逻辑设备而异。有些可能需要数十纳秒的设置和/或保持时间;其他人则需要少一个数量…

CSP-J 2023 入门级 第一轮 阅读程序(2)

【题目】 CSP-J 2023 入门级 第一轮 阅读程序&#xff08;2&#xff09; #include <iostream> #include <vector> #include <algorithm> using namespace std; int f(string x, string y) {int m x.size();int n y.size();vector<vector<int>&g…

QT-day5

1、添加注册功能到数据库 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMessageBox> //消息对话框类头文件 #include <QDebug> #include <QPushButton> #include <QSqlDatabase> //数据库管理类 #include…

如何提高测试用例覆盖率?阿里测试工程师是这样说的

我们将讨论测试覆盖率的相关问题&#xff0c;以及它如何帮助提高软件质量的。 测试覆盖率概述 测试覆盖率被定义为一种测试技术指标&#xff0c;它表明我们的测试用例是否真正完全覆盖了应用程序代码中的各种可能以及在运行这些测试用例时执行了多少代码。 如果有10个需求并创…

在IntelliJ IDEA 中安装阿里P3C以及使用指南

在IntelliJ IDEA 中安装阿里P3C以及使用指南 1.关于阿里p3c1.1说明1.2什么是P3C插件1.3p3c的作用是什么 2 如何在IDEA中安装p3c2.1 插件安装2.2 插件使用 3.参考连接 1.关于阿里p3c 1.1说明 代码规范检查插件P3C&#xff0c;是根据《阿里巴巴java开发手册(黄山版)》转化而成的…

yolov5使用最新MPDIOU损失函数,有效和准确的边界盒回归的损失,优于GIoU/EIoU/CIoU/EIoU(附代码可用)

文章目录 1. 论文1.1. 主要目的1.2. 设计思路2 代码3.总结1. 论文 MPDIoU: A Loss for Efficient and Accurate Bounding Box Regression (一个有效和准确的边界框损失回归函数) 论文地址 1.1. 主要目的 当预测框与边界框具有相同的纵横比,但宽度和高度值完全不同时,大多数…

控制台日志打印console的封装,加入美化、行显示与打印开关,支持node.js环境

控制台日志打印console的封装&#xff0c;加入美化、行显示与打印开关&#xff0c;支持node.js环境 为什么要写这个&#xff1f; 封装这个控制台日志打印工具&#xff0c;主要是在项目中自己做的SDK需要提供给其他开发人员使用&#xff0c;加入了日志美化和打印打开&#xff…

浅谈Vue3——父子组件传值

引言 Vue.js是一款流行的JavaScript框架&#xff0c;用于构建用户界面。它提供了一种简洁、灵活的方式来管理和渲染数据。在Vue3中&#xff0c;父子组件之间的数据传递是一个常见的需求。本文将介绍如何在Vue3中传递对象&#xff0c;并且在子组件中访问和修改父组件对象中的属…

计算机网络 第四章:网络层

一.网络层概述 1.1分组转发和路由选择 网络层的主要任务就是将分组从源主机经过多个网络和多段链路传输到目的主机&#xff0c;可以将该任务划分为分组转发和路由选择两种重要的功能。 如图所示&#xff1a;这些异构型网络如果只是需要各自内部通信&#xff0c;那它们只需要实…

C 通过宏定义重定义malloc - free,预防内存泄露

系列文章目录 C模版基础 文章目录 目录 代码地址 相关说明 使用案例 代码地址 GitHub - CHENLitterWhite/CPPWheel: CPP自封装的库 /* * 作者: 干饭小白 * 时间: 2023-09-25 16:00:00:00 * * 说明: * 只能检测 malloc 和 free,无法检测 new delete */ #pra…

【异常错误】detected dubious ownership in repository ****** is owned by: ‘

今天在github git的时候&#xff0c;突然出现了这种问题&#xff0c;下面的框出的部分一直显示&#xff1a; detected dubious ownership in repository at D:/Pycharm_workspace/SBDD/1/FLAG D:/Pycharm_workspace/SBDD/1/FLAG is owned by: S-1-5-32-544 but the current use…

【Vue】使用vue-cli搭建SPA项目的路由,嵌套路由

一、SPA项目的构建 1、前期准备 我们的前期的准备是搭建好Node.js,测试&#xff1a; node -v npm -v2、利用Vue-cli来构建spa项目 2.1、什么是Vue-cli Vue CLI 是一个基于 Vue.js 的官方脚手架工具&#xff0c;用于自动生成vue.jswebpack的项目模板&#xff0c;它可以帮助开发者…