推 plsmaop: 沒在 c 裡面寫過 callback,在 js 裡通常是發出一個 http 01/08 10:48
→ plsmaop: request 之後告訴 js runtime 說拿到 response 後執行這 01/08 10:48
→ plsmaop: 個 callback,參數是 response 帶回來的內容 01/08 10:48
推 plsmaop: 我想一下其他情境:可能有好幾個功能大部分的行為是一樣 01/08 10:51
→ plsmaop: 的,只差在最後,那我把共同的部分抽出來,然後把不一樣 01/08 10:51
→ plsmaop: 的行為包成 function,傳進去給共同的部分,共同的部分 01/08 10:51
→ plsmaop: 最後會跑傳進來的 function 01/08 10:51
推 LPH66: 以你的 Code#1 為例的話, 考慮 B 是函式庫裡已經寫好的程式 01/08 11:28
→ LPH66: 它的有些地方會需要使用者傳入部份動作或邏輯 01/08 11:29
→ LPH66: 一個最簡單的這樣的例子是 C 的 qsort 01/08 11:29
→ LPH66: qsort 的第四參數是傳入一個函式, 即是這種狀況 01/08 11:30
→ LPH66: 套用四樓的說法的話: 快排演算法的主邏輯是不變的 01/08 11:31
→ LPH66: 不一樣的是元素如何比大小, 所以把它抽出來作為 callback 01/08 11:32
→ hsnuyi: 韌體常用 01/08 12:53
推 flysonics: 你去看driver code會更容易體會到用callback的時機 01/08 22:14
推 ko27tye: 同樣return和參數的function pointer可用同一個callback 01/08 22:15
→ flysonics: 通常是需要非即時性的handler function時會用到 01/08 22:15
→ flysonics: 你如果很確定function routine的話其實直接寫就OK 01/08 22:17
推 dces4212: UART接收後的handler function也是個callback 01/08 22:37
推 boss0405: LinuxDriver的ops,或是HAL層的模組化 01/08 22:59
→ largesperm: 原來是這樣 各位的解釋很直觀 明白了 謝謝 01/09 08:55
推 cphe: 沒有馬上要執行的就叫callback 01/09 09:41
→ cphe: Linux kernel很多可以看看,你這範例蠻不好的其實 01/09 09:42
→ final01: 沒有馬上要執行就是callback這解釋我也是醉了 01/23 22:40
推 cia1099: 你只要想寫lamda的時候就是call back的時機了 02/24 08:21