首页 > 其他分享 >高频前端面试题:什么是回调函数?

高频前端面试题:什么是回调函数?

时间:2023-01-12 10:31:42浏览次数:34  
标签:面试题 调用 函数 回调 前端 onHeight height 高频 void


软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用

同步调用是一种阻塞式调用,调用方要等待对方执行完毕才 返回,它是一种单向调用;回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;

异步调用是一种类似消息或事件的机制,不过它的 调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。

回调和异步调用的关系非常紧密,通常我们使用回 调来实现异步消息的注册,通过异步调用来实现消息的通知。同步调用是三者当中最简单的,而回调又常常是异步调用的基础,因此,下面我们着重讨论回调机制在 不同软件架构中的实现

回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。

回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。

案例:

#include<stdio.h>
//callbackTest.c
//1.定义函数onHeight(回调函数)
//@onHeight 函数名
//@height 参数
//@contex 上下文
void onHeight(double height, void *contex)
{
printf("current height is %lf", height);
}
//2.定义onHeight函数的原型
//@CallbackFun 指向函数的指针类型
//@height 回调参数,当有多个参数时,可以定义一个结构体
//@contex 回调上下文,在C中一般传入nullptr,在C++中可传入对象指针
typedef void (*CallbackFun)(double height, void *contex);
//定义全局指针变量
CallbackFun m_pCallback;
//定义注册回调函数
void registHeightCallback(CallbackFun callback, void *contex)
{
m_pCallback = callback;
}
//定义调用函数
void printHeightFun(double height)
{
m_pCallback(height, NULL);
}
//main函数
int main()
{
//注册回调函数onHeight
registHeightCallback(onHeight, NULL);
//打印height
double h = 99;
printHeightFun(99);
}

标签:面试题,调用,函数,回调,前端,onHeight,height,高频,void
From: https://blog.51cto.com/u_8238263/6003665

相关文章

  • 你知道,前端工程部署有哪些方式嘛?
    你知道,前端工程部署有哪些方式嘛?本文原文地址;此文章是回答知乎问题总结而来。我将其分为四个阶段:手动部署、命令工具部署、docker镜像部署、平台化部署。这几个阶段,越......
  • 前端面试题
    javascript1、请问截至目前JS中的基本数据类型有几种?A、5B、6C、7D、82、document对象模型中,节点类型一共有几种?A、4种......
  • 软件测试面试题及答案,不给答案的面试题都是耍流氓
    面试指导软件测试理论刷题篇mysql数据库刷题库linux操作系统刷题篇软件测试工程师面试篇一.软件测试理论刷题篇1.软件测试的意义是什么?思路:什么是软件......
  • 【HTML基础篇003】前端基础之CSS选择器大全
    ✨一、CSS的基本介绍CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素。当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染)。✨二、CSS......
  • 前端使用canvas实现贪吃蛇小游戏
    贪吃蛇是一款益智小游戏,通过点击上下左右四个按键控制蛇头移动。设计思路主要是设计蛇的身体和移动方法。将蛇的身体设置成一个数组,数组里存放蛇身每一节的xy坐标。游......
  • 前端知识点整理第二天(伪类和伪元素/html5语义化)
    SEO,也就是搜索引擎优化的逻辑,其实是非常简单的。这就像是在大学里的学生会主席,你要让投票者给你更多的选票。那么,你需要先「自我优化」,无论是外表还是能力;此外,你还需获得......
  • 前端分页和后端分页的区别,当后端返回的数据过多给前端时,前端会卡住不动,此时应该考虑后
    问题:这里返回给你600条数据 前端一直在打转,显示不出来?    原因:数据量太大了可能解决方法:改为后端分页就行  current当前页size每页显示条数 ......
  • 前端分页和后端分页
    前端分页和后端分页https://blog.csdn.net/baidongying/article/details/75448106?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Ede......
  • 动手面试题
    有一个整数数组,数据大概是0-1000000之间的整数,里面的整数会有重复元素,对于重复元素可以为每个元素加1,但是要保证不会有重复的元素出现,需要遍历多少次 publicstaticvoi......
  • 数据类型拓展以及面试题讲解
    数据类型拓展以及面试题讲解拓展调试代码的方式现在待调试代码行处标记,再点击甲虫符号进行调试。......