close

Callback,字面上的解釋就是「回呼」,這牽涉到多工作業系統中兩個同時執行﹝cocurrent﹞的不同模組。一種情形是,

A 模組給 B 模組一個 function pointer,請它在處理完某項工作後,或是在適當時機,使用這個 function pointer 來呼叫該函式。

例如,A 模組裡面寫了一個 CallMeIfDone 的 function, 然後它啟動了 B 模組,並且把 CallMeIfDone 的位址傳給 B 模組。

A 模組繼續執行它的工作,B 模組也同時在處理它的事情,等到 B 模組處理完畢,它就會呼叫 CallMeIfDone,但是這個函式

是寫在 A 模組裡面的,所以實際上是跑回來 A 模組的地盤執行 CallMeIfDone,因此就稱為「回呼,callback」。另一種情形是,

B 模組是一個獨立執行的模組,專門處理使用者輸入,每當使用者敲一下鍵盤,或是動一下滑鼠,它就會產生一個事件,

需要處理這些事件的其他模組必須向 B 模組登記 callback function,例如 A 模組向 B 模組登記了 KeyboardEvents 的 callback function

那麼 B 模組在偵測到鍵盤動作時,就會去呼叫這個函式了,當然這個函式也是寫在 A 模組裡面的。

 

就是A準備好function給B去call,但是A不知道B什麼時候會call,B知道自己在什麼時候要call一個function,

但是就是不知道function叫做什麼,只知道這個function的address、return type、argument。

文章標籤
callback function c語言
全站熱搜
創作者介紹
創作者 linch0520 的頭像
linch0520

linch0520的部落格

linch0520 發表在 痞客邦 留言(0) 人氣()