Non riesco ad interpretare il prototipo di questa funzione
Me lo sapreste spiegare in linguaggio naturale?Codice PHP:
void attraversa(List head, void *res, void visita(List,void *))
Non riesco ad interpretare il prototipo di questa funzione
Me lo sapreste spiegare in linguaggio naturale?Codice PHP:
void attraversa(List head, void *res, void visita(List,void *))
attraversa è una funzione che ha tre argomenti: una variabile di tipo List, un puntatore a void ed un puntatore ad una funzione che a sua volta ha di due argomenti.
Il contesto è un albero, giusto? Come già saprai un albero è visitabile in tre modi: pre-order, in-order e post-order. Vuoi un in-order? Passi come terzo parametro la funzione che si occupa di visitare l'albero in quel modo. Vuoi un pre-order? Cambi solo il puntatore, la funzione "attraversa" resta la stessa.
SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
Di questo libro e degli altri (blog personale di recensioni libri) | NO M.P. TECNICI
No si tratta di liste, cmq la cosa che non capivo è perchè per specificare il parametro "puntatore a funzione" è stato necessario anche mettere gli argomenti che prende.
Non si può fare anche così?
e la chiamata essere così ?Codice PHP:
void attraversa(List head, void *res, (*visita)())
Codice PHP:
attraversa(lista, NULL, stampa)
Nella definizione della funzione è fondamentale specificare esattamente il prototipo della funzione puntata, dal momento che altrimenti il compilatore non potrebbe effettuare alcun genere di controllo su come questa viene richiamata e non sarebbe in grado di generare il codice di chiamata corretto. Nel prototipo serve per verificare direttamente al momento della compilazione della chiamata a attraversa che le sia passato un puntatore a funzione del tipo che si aspetta.Originariamente inviato da wino_7
No si tratta di liste, cmq la cosa che non capivo è perchè per specificare il parametro "puntatore a funzione" è stato necessario anche mettere gli argomenti che prende.
Amaro C++, il gusto pieno dell'undefined behavior.