Po obejrzeniu (i zadaniu!) Tylu pytań podobnych do
Co
int (*f)(int (*a)[5])
znaczy w C?
a nawet widząc, że stworzyli program, który ma pomóc ludziom zrozumieć składnię C, nie mogę przestać się zastanawiać:
Dlaczego składnia C została zaprojektowana w ten sposób?
Na przykład, gdybym projektował wskaźniki, tłumaczyłbym „wskaźnik na 10-elementową tablicę wskaźników” na
int*[10]* p;
i nie
int* (*p)[10];
co wydaje mi się, że większość ludzi się zgodzi, jest o wiele mniej proste.
Zastanawiam się więc, dlaczego ta nieintuicyjna składnia? Czy był jakiś konkretny problem, który rozwiązuje składnia (być może dwuznaczność?), Którego nie jestem świadomy?
cdecl
Polecenie jest bardzo przydatny do dekodowania złożone zgłoszenia C. Istnieje również interfejs sieciowy na cdecl.org .