回調函數

回調函數

在一開始遇見函數指針的知識點的時候十分不理解爲什麼要用函數指針,感覺你他媽要用函數就特麼用唄,非得寫尼瑪的參數裏啊,fuck!!@#¥

然後就看到了排序算法的用法,因爲不可能只有基本類型的變量要你排序,還會排結構體,今天我想用年齡論資排輩就用年齡,明天我想用工資就用工資,那怎麼實現排序呢,難道每次都要對我的函數進行修改嗎?

其實需要修改的只是排序規則,這時候就應該用函數指針,把函數(規則)當做參數傳入我的排序函數,將邏輯和排序規則分開

其實這時候我已經接觸到了回調函數的概念了,但是當時的我並不知道!

在用ffmpeg開發的時候,第一次見到了別人用回調函數,才瞭解到回調的方法在工程開發時應該是非常重要的,庫的開發者將需要用戶決定的部分以回調函數的形式開放出去,像一個接口一樣給用戶定製。

ffmpeg的read_packet()就是一個例子,每當解碼時缺少數據就會觸發回調函數(調用read_packet)獲取數據,而用戶根據自己的情況編寫(實現read_packet)如何獲得數據(讀內存還是讀文件等等)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章