• # Pourquoi pas?

    Posté par (site web personnel) . En réponse au journal Toujours plus de fun avec C. Évalué à 10.

    C'est une déclaration de variable, comme int riguant.

    Je dirais que la partie gauche accepte les parenthèses pour permettre de grouper les choses, comme par exemple entre int *(foo[]) versus int (*foo)[]).

    En C (et C++), on peut voir la déclaration de type comme deux parties. La gauche, le type primitif, et la droite, comme "une expression qui permet d’accéder à ce type".

    Par exemple, int *p; signifie que *p permet d’accéder à un int. Donc p est un pointeur.

    En partant de là, si les parenthèses sont autorisées, pas de raison de les interdire dans le cas ou l'expression se réduit à un nom.