2011-12-21 64 views
6

任何人都可以請告訴我什麼,我們確實是通過在C中註冊一個回調函數與一些例子?我在網上搜索了很多,但我無法得到滿意的答案。即使在堆棧溢出搜索,但無法得到完美的想法。你在C中註冊一個回調函數是什麼意思?

什麼是通知回調和異步回叫?

+2

[在C中是什麼是「回調」,它們是如何實現的?](http://stackoverflow.com/questions/142789/what-is-a-callback-in-c-and-how - 他們實施) – Hasturkun 2011-12-21 13:16:23

+0

另請參閱http://stackoverflow.com/a/147241/20270 – Hasturkun 2011-12-21 13:17:11

+0

維基百科頁面體面http://en.wikipedia.org/wiki/Callback_%28computer_programming%29 – LB40 2011-12-21 13:22:14

回答

11

註冊回調函數僅僅意味着您正在安排外部實體來調用您的函數。

它可能發生在晚些時候,或者它可能會立即發生。一個簡單的例子是qsort。據聲明如下:

void qsort(void *base, size_t nel, size_t width, 
     int (*compar)(const void *, const void *)); 

爲了使用它,你必須一個指針傳遞給其比較元素的函數 - 回調。

這是一個簡單的例子,但通常「註冊回調」意味着將函數指針傳遞給將來會爲您調用它的人。