Puntatori a funzioni

di il
3 risposte

Puntatori a funzioni

Qualcuno può darmi qualche dritta su i puntatori a funzione??? Qualche link a qualk guida magari... Devo fare un test ma non ho la più pallida idea di come funzionino...
Il test è pieno di esercizi di qst genere :
si consideri int* a = pluto (7) dire quali fra qst è il prototipo più adatto
a. int & pluto (int &)
b. int * pluto(int*)
c. int * pluto (int)

3 Risposte

  • Re: Puntatori a funzioni

    In linea di massima è un normale puntatore che anziché puntare al segmento dati punta al segmento codice. Il bello di ciò è che puoi eseguirlo come fosse una normale funzione...

    La rete è piena di documenti ed esempi, basta usare
  • Re: Puntatori a funzioni

    E che genere di vantaggi da??? Cioè alla fine punta al ritorno della funziona o è una specie di ricorsione??
  • Re: Puntatori a funzioni

    Chiama una funzione che 'tu' definisci ed il vantaggio è che la funzione chiamante non la devi modificare di volta in volta...

    Immagina di voler scrivere una gestione timer, dove ogni tot nanosecondi si vuole chiamare una funzione.
    
    SetTimerCallBack(ShowTime,&myvars,1000000);
    SetTimerCallBack(ClientRefresh,&myvars,10000);
    
    ShowTime è la nostra funzione che verrà chiamata ogni secondo
    ClientRefresh è un'altra funzione che verrà chiamata ogni 1/100 secondo
    Il gestore chiamerà semplicemente il puntatore a funzione che passiamo.

    Un altro classico ANSI esempio è la funzione qsort che usa un puntatore a funzione e che viene così definita:
    
    void qsort(void *array, size_t n_el, size_t size, int (*compare)(const void *, const void *));
      array — puntatore inizio array
      n_el  — numero di elementi
      size  — grandezza di ciascun elemento in byte
      compare — puntatore a funzione - ritorna positivo o negativo
    
    il base al ritorno della nostra 'compare' qsort scambierà o meno gli elementi.
Devi accedere o registrarti per scrivere nel forum
3 risposte