经常看到C开发的软件代码里有什么注册函数,注册勾子函数等等
函数我知道只需要声明和定义就可以调用了,为什么还要注册?注册了有什么用处?
还有就是回调函数的概念不懂。请教大家呀!!!
c
------解决方案--------------------------------------------------------
注册就是在有事件发生的时候,能够自动调用你写的函数,做你想要的处理。
------解决方案--------------------------------------------------------
比如系统一个类,系统某事件发生会通知到这个类,现在你也想得到这个事件,怎么办呢?调用类预留的注册接口,告诉类,把事件传给哪个函数。这样你就能得到这个事件了。
------解决方案--------------------------------------------------------
就是回调函数了,
e.g.:
typedef struct
{
int (* cb)(int, int);
}thread_ctx;
创建thread的时候: thread_ctx.cb = func_cb;//这里是你需要注册的函数
thread在判断某些条件的时候就可以直接调用
thread_ctx.cb();