В одному з моїх вихідних файлів проекту я знайшов таке визначення функції C:
int (foo) (int *bar)
{
return foo (bar);
}
Примітка: Поруч немає зірочки foo, тому це не покажчик функції. Або це? Що відбувається тут з рекурсивним викликом?
a(b);? Декларація bяк змінної типу a? Або заклик функціонувати aз аргументом b? Різниця синтаксична, і ви не можете знати, який спосіб її навіть розібрати, не шукаючи інформацію про декларації a; тобто це круглі дужки виклику функції постфіксу або необов'язкові дужки навколо декларатора.