Après avoir vu (et posé!) Tant de questions similaires à
Que
int (*f)(int (*a)[5])
signifie en C?
et même en voyant qu'ils avaient fait un programme pour aider les gens à comprendre la syntaxe C, je ne peux m'empêcher de me demander:
Pourquoi la syntaxe de C a-t-elle été conçue de cette façon?
Par exemple, si je concevais des pointeurs, je traduirais "un pointeur vers un tableau de 10 éléments de pointeurs" en
int*[10]* p;
et non
int* (*p)[10];
ce que je pense que la plupart des gens seraient d'accord est beaucoup moins simple.
Je me demande donc pourquoi la, euh, syntaxe non intuitive? Y a-t-il un problème spécifique résolu par la syntaxe (peut-être une ambiguïté?) Que je ne connais pas?
cdecl
commande est très pratique pour décoder des déclarations C complexes. Il y a aussi une interface Web sur cdecl.org .