Di salah satu file sumber proyek saya, saya menemukan definisi fungsi C ini:
int (foo) (int *bar)
{
return foo (bar);
}
Catatan: tidak ada tanda bintang di sebelahnya foo, jadi itu bukan penunjuk fungsi. Atau itu? Apa yang terjadi di sini dengan panggilan rekursif?
a(b);? Deklarasi bsebagai variabel tipe a? Atau panggilan untuk berfungsi adengan argumen b? Perbedaannya adalah sintaksis, dan Anda tidak dapat mengetahui cara untuk menguraikannya tanpa melihat info deklarasi a; yaitu tanda kurung fungsi postfix, atau tanda kurung opsional di sekitar deklarator.