C语言回调函数与日志系统
一、C语言回调函数
1、回调函数概念
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
简单点来说,就是主函数 Main program
调用函数 Library function
的时候,函数Main program
通过参数给函数 Library function
传递了另外一个函数Callback function
的指针。在函数 Library function
执行的过程中,函数Library function
调用了函数Callback function
,这个动作就叫做回调(Callback),而先被当做指针传入、后面又被回调的函数Callback function
就是回调函数。
2、回调函数的作用
回调似乎只是函数间的调用,和普通函数调用没啥区别,但仔细一看,可以发现两者之间的一个关键的不同:在回调中,主程序把回调函数像参数一样传入库函数。这样一来,只要我们改变传进库函数的参数,就可以实现不同的功能,并且丝毫不需要修改库函数的实现,实现解耦。
1 |
|
3、回调函数的简单使用
1 |
|
4、回调函数进阶版
四则运算的简单回调函数.
1 |
|
二、C语言简单日志系统
简答的不同等级日志打印底层,可以控制日志输出,打印出具体的行号,函数名等,可以用来当做参考,和spring的日志系统有点像
新建log.h
1 |
|
新建log.c
1 |
|
参考文章:
https://www.runoob.com/w3cnote/c-callback-function.html