W jednym z moich plików źródłowych projektu znalazłem definicję funkcji C:
int (foo) (int *bar)
{
return foo (bar);
}
Uwaga: obok nie ma gwiazdki foo, więc nie jest wskaźnikiem funkcji. Albo to jest? Co się tutaj dzieje z połączeniem rekurencyjnym?
a(b);? Deklaracja bjako zmiennej typu a? Lub wezwanie do działania az argumentem b? Różnica jest składniowa i nie możesz wiedzieć, w jaki sposób ją parsować, nie sprawdzając informacji o deklaracji a; tzn. są to nawiasy wywołujące funkcję Postfiks lub opcjonalne nawiasy wokół deklaratora.