Salve a tutti,
volevo sapere che differenza c'è in C tra passare una funzione(tramite puntatori alla funzione) come parametro di un' altra funzione o semplicemente richiamarla in quest' ultima.
grazie anticipatamente
Salve a tutti,
volevo sapere che differenza c'è in C tra passare una funzione(tramite puntatori alla funzione) come parametro di un' altra funzione o semplicemente richiamarla in quest' ultima.
grazie anticipatamente
Spesso è una caratteristica sfruttata in funzioni di libreria che necessitano di essere "generiche" e di modificare il loro comportamento a seconda delle esigenze del programmatore utente. La C standard library ad esempio ha la funzione qsort() che come ultimo parametro ha un puntatore a una funzione di "confronto", questo perché un array da ordinare non è detto che sia di tipi numerici primitivi (int, float e simili) che possono essere confrontati con i semplici operatori di confronto relazionali (< e >), ma potrebbe essere un array di strutture definite dal programmatore utente della funzione di libreria, e pertanto dovrebbe essere lui a fornire alla qsort() una funzione valida per confrontare gli elementi dell'array in input al fine di ordinarli.
Altri esempi (ma ve ne sono tanti) possono essere le funzioni POSIX signal() o pthread_create() che ricevono puntatori a funzione rispettivamente per installare un gestore di segnali diverso da quello di default e per associare la funzione da eseguire al thread creato.
every day above ground is a good one