In uno dei miei file sorgente del progetto, ho trovato questa definizione della funzione C:
int (foo) (int *bar)
{
return foo (bar);
}
Nota: non c'è un asterisco accanto foo, quindi non è un puntatore a funzione. O è? Cosa sta succedendo qui con la chiamata ricorsiva?
a(b);? Dichiarazione di bcome variabile di tipo a? O una chiamata per funzionare acon argomento b? La differenza è sintattica e non puoi sapere in che modo analizzarla senza cercare le informazioni sulla dichiarazione di a; vale a dire quelle parentesi di funzione postfissa o parentesi opzionali attorno a un dichiaratore.