请问啥叫做回调函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问啥叫做回调函数相关的知识,希望对你有一定的参考价值。

回调函数就是callback函数。是系统给用户的开放接口程序。
当某事件发生时,系统需要处理这一事件,例如键盘输入事件发生,例如屏幕图像更新事件发生,如果你给了“回调函数”,系统则用你给的程序去处理,如果没给,系统就用默认方法处理。
OpenGL 的 GLUT 程序就是这样。例如函数:
glutDisplayFunc(display); 这里的display就是你写的如何“画”屏幕的函数名。
glutKeyboardFunc(press_s); 这里的press_s就是你写的如何处理键盘输入事件的函数名。
函数的参数,系统也许有约定,也许允许你写一大串。
具体的display函数和press_s用户要提供。例如:
void display()

float v[3],n[3]; float text_color[3]=1.,0.,0.;
int i,j;
Point p1,p2,p3,p4;
glMatrixMode(GL_MODELVIEW);
glClearColor(1.0,1.0,1.0,1.0);
glClear(GL_COLOR_BUFFER_BIT);
glDrawBuffer(GL_BACK);
glMaterialfv(GL_FRONT, GL_AMBIENT, mat1_ambient);
glPushMatrix();
glBegin(GL_TRIANGLES);
。。。。

void press_s(unsigned char key, int x, int y)

FILE * fout;
int bmp_w,bmp_v, win_buff_size;
...
switch (key)
case 'q' : exit (1); break;
case 'x': glTranslatef(10.,0.,0.); glutPostRedisplay();
...
参考技术A 回调函数也就是所谓的callback函数,是你设计的给系统调用的函数。你可以这样想,当你按键盘的时候,系统会响应这个按键消息,但是你希望系统按照你设定的方式来处理这个事件。那么你就可以设计一个处理键盘类的回调函数,让系统知道,以后只要有你关注的按键消息,就自动调用你的callback函数

请问啥叫回调方法?

是不是调一个方法,把返回值作为另一个方法的参数就叫回调方法?

回调函数就是一个通过函数指针调用的函数。

如果把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,那就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。

不管怎么说,回调函数是继承自C语言的。在C++中,应只在与C代码建立接口或与已有的回调接口打交道时,才使用回调函数。除了上述情况,在C++中应使用虚拟方法或仿函数(functor),而不是回调函数。


扩展资料:

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

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

回调是任何一个被以方法为其第一个参数的其它方法的调用的方法。很多时候,回调是一个当某些事件发生时被调用的方法。

参考资料:百度百科-回调函数

参考技术A

回调方法就是一个参数,将一个A方法作为参数传到B方法里面,当B方法执行完之后,再执行传进去的这个A方法,这个过程就叫做回调,例如:

java定义一个按钮,然后给这个按钮注册一个监听器,由于java不支持函数式编程(不考虑lambda表达式,所以我们往里面传入一个匿名内部类,实现这个类实现的接口的方法),当我们点击这个按钮时,就会触发这个方法,这个方法不是我们调用的,是按钮被点击后,由jvm调用的,这就是回调。

扩展资料:

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

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

回调是任何一个被以方法为其第一个参数的其它方法的调用的方法。很多时候,回调是一个当某些事件发生时被调用的方法。

参考资料来源:百度百科-回调函数

参考技术B 在Java中,就是类A调用类B中的某个方法b,然后类B又在某个时候反过来调用类A中的某个方法a,对于A来说,这个a方法便叫做回调方法

pubilc interface CallBack

public void callbackMethod();



public class A implements CallBack // A实现接口CallBack

B b = new B();

public void do()

b.doSomething(this); // A运行时调用B中doSomething方法,以自身传入参数,B已取得A,可以随时回调A所实现的CallBack接口中的方法



public void callbackMethod() // 对A来说,该方法就是回调方法

System.out.println("callbackMethod is executing!");





public class B

public void doSomething(CallBack cb) // B拥有一个参数为CallBack接口类型的方法

System.out.println(“I am processing my affairs… ”);

System.out.println(“then, I need invoke callbackMethod…”);

cb.callbackMethod();



本回答被提问者采纳
参考技术C 回调,也叫CALLBACK,也就是说,你写一个函数,函数声名是人家指定的,然后再将你这个函数的地址给人家提供给你的一个函数指针变量。
最后你激活人家的库,使其运转,他在特定的时候就会调用你的库:)

比如说:你写了一个函数,函数的作用就是显示当前鼠标所在处的像素点的颜色值;然后你把这个函数给“挂接”到一个窗口的OnMouseClick函数指针里,当程序执行后,你点了一下窗口,那个函数中的代码(显示颜色值)就执行了:)
参考技术D 回调方法是指 使用者自己定义一个方法,实现这个方法的程序内容,然后把这个方法(入口地址)作为参数传入别人(或系统)的方法中,由别人(或系统)的方法在运行时来调用的方法。方法是你实现的,但由别人(或系统)的函方法在运行时通过参数传递的方式调用,这就是所谓的回调方法。简单来说,就是由别人的方法运行期间来回调你实现的方法。
举个例子, java定义一个按钮,然后给这个按钮 注册一个监听器, 由于java不支持函数式编程(不考虑lambda表达式,所以我们往里面传入一个匿名内部类, 实现这个类实现的接口的方法),当我们点击这个按钮时,就会触发这个方法, 这个方法是我们调用的吗?不是,他是按钮被点击后,由jvm调用的,这就是回调

以上是关于请问啥叫做回调函数的主要内容,如果未能解决你的问题,请参考以下文章

JAVA里面方法回调是啥意思

回调函数是啥意思 啥是回调函数

一个简单的java回调函数的实现

回调函数

神马是回调函数?

jquery 中的回调函数,回调函数(callback)是什么?