回调函数
在一开始遇见函数指针的知识点的时候十分不理解为什么要用函数指针,感觉你他妈要用函数就特么用呗,非得写尼玛的参数里啊,fuck!!@#¥
然后就看到了排序算法的用法,因为不可能只有基本类型的变量要你排序,还会排结构体,今天我想用年龄论资排辈就用年龄,明天我想用工资就用工资,那怎么实现排序呢,难道每次都要对我的函数进行修改吗?
其实需要修改的只是排序规则,这时候就应该用函数指针,把函数(规则)当做参数传入我的排序函数,将逻辑和排序规则分开。
其实这时候我已经接触到了回调函数的概念了,但是当时的我并不知道!
在用ffmpeg开发的时候,第一次见到了别人用回调函数,才了解到回调的方法在工程开发时应该是非常重要的,库的开发者将需要用户决定的部分以回调函数的形式开放出去,像一个接口一样给用户定制。
ffmpeg的read_packet()就是一个例子,每当解码时缺少数据就会触发回调函数(调用read_packet)获取数据,而用户根据自己的情况编写(实现read_packet)如何获得数据(读内存还是读文件等等)