Trong một trong các tệp nguồn dự án của tôi, tôi đã tìm thấy định nghĩa hàm C này:
int (foo) (int *bar)
{
return foo (bar);
}
Lưu ý: không có dấu hoa thị bên cạnh foo, vì vậy đây không phải là con trỏ hàm. Hoặc là nó? Điều gì đang xảy ra ở đây với cuộc gọi đệ quy?
a(b);gì? Khai báo bnhư là một biến của loại a? Hoặc một cuộc gọi để hoạt động avới đối số b? Sự khác biệt là cú pháp và bạn không thể biết cách nào để phân tích cú pháp mà không cần tra cứu thông tin khai báo a; tức là các hàm postfix gọi các dấu ngoặc đơn hoặc các dấu ngoặc đơn tùy chọn xung quanh một bộ khai báo.