https://stackoverflow.com/questions/824234/what-is-a-callback-function
callback两个主要的作用:
- 通过函数调用另一个函数 (函数指针)
- 当第一个函数执行完毕后再执行另一个函数
初步看一下
callback最初听说,可以将socket的lib中的函数服复用,当时是处于懵懂的状态,现在重新整理一下。
打印下,这就是最基本的callback的使用。下面是log:
再来举一个简单的例子:
看到没有,如果我们仅仅知道了func的函数原型,就可以通过callback再次使用它了,而且参数必须指定,这样,容易理解callback的用法了吧。 其实如果我们再一次确认上面的代码,注意里面有一个 explicit 和 implicit dereference,这里确实有点有点意思。
其实,以上的代码就是通过函数指针 callback.
register callback
The kernel’s callback mechanism provides a general way for drivers to request and provide notification when certain conditions are satisfied.
所以驱动里使用的比较多呢。
https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/callback-objects
下面以几个更具体的例子进行说明:
cat reg_callback.h
cat reg_callback.c
gcc -Wall -o callback callback.c reg_callback.c
以上几个代码段是比较复杂的使用callback的方法,但是概括了一般的使用场景。