Dopo aver visto (e posto!) Tante domande simili a
Cosa
int (*f)(int (*a)[5])
significa in C?
e anche visto che avevano creato un programma per aiutare le persone a capire la sintassi C, non posso fare a meno di chiedermi:
Perché la sintassi di C è stata progettata in questo modo?
Ad esempio, se stavo progettando puntatori, tradurrei "un puntatore a un array di puntatori a 10 elementi" in
int*[10]* p;
e non
int* (*p)[10];
che penso che la maggior parte delle persone concorderebbe è molto meno semplice.
Quindi mi chiedo, perché la sintassi non intuitiva? C'è stato un problema specifico che la sintassi risolve (forse un'ambiguità?) Di cui non sono a conoscenza?
cdecl
comando è molto utile per decodificare dichiarazioni C complesse. C'è anche un'interfaccia web su cdecl.org .