2011-12-21 14 views
6

Qualcuno può dirmi per favore cosa intendiamo esattamente registrando una funzione di callback in C con alcuni esempi? Ho cercato molto in rete, ma non ho potuto ottenere risposte soddisfacenti. Persino cercati nello stack overflow ma non sono riusciti a ottenere l'idea perfetta al riguardo.cosa intendi registrando una funzione di callback in C?

Cosa sono le richiamate di notifica e le richiamate asincrone?

+2

possibile duplicato di [Che cos'è un "callback" in C e in che modo vengono implementati?] (Http://stackoverflow.com/questions/142789/what-is-a-callback-in-c-and-how -sono implementati) – Hasturkun

+0

Vedere anche http://stackoverflow.com/a/147241/20270 – Hasturkun

+0

la pagina di Wikipedia è decente http://en.wikipedia.org/wiki/Callback_%28computer_programming% 29 – LB40

risposta

11

La registrazione di una funzione di richiamata significa semplicemente che si sta organizzando un'entità esterna per chiamare la propria funzione.

Potrebbe accadere in un secondo momento, o potrebbe accadere immediatamente. Un esempio semplice è qsort. Si dichiara così:

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

Per utilizzarlo, è necessario passare un puntatore a una funzione che confronta gli elementi - la richiamata.

Questo era un semplice esempio, ma in genere "registrare un callback" significa passare un puntatore a funzione a qualcuno che lo chiamerà per te in futuro.

Problemi correlati