Depois de ter visto (e perguntado!) Tantas perguntas semelhantes a
O que
int (*f)(int (*a)[5])
significa em C?
e mesmo vendo que eles criaram um programa para ajudar as pessoas a entender a sintaxe C, não posso deixar de me perguntar:
Por que a sintaxe de C foi projetada dessa maneira?
Por exemplo, se eu estivesse projetando ponteiros, eu traduziria "um ponteiro para uma matriz de 10 elementos" em
int*[10]* p;
e não
int* (*p)[10];
o que eu acho que a maioria das pessoas concorda que é muito menos direto.
Então, eu estou me perguntando, por que a sintaxe não intuitiva? Houve um problema específico que a sintaxe resolve (talvez uma ambiguidade?) Que eu desconheço?
cdecl
comando é muito útil para decodificar declarações C complexas. Há também uma interface da web em cdecl.org .