Maison > Article > développement back-end > Quand les parenthèses sont-elles autorisées dans les déclarations de variables en C ?
Déclaration de variable avec parenthèses dans la norme C
Dans le domaine de la programmation C, le # Quelle partie de la norme C autorise déclarer une variable entre parenthèses ? une question se pose, laissant de nombreux programmeurs perplexes. Cet article met en lumière cette syntaxe déroutante en examinant les profondeurs du standard C et en dévoilant la logique cachée.
Le standard C élucide ce comportement intrigant dans [dcl.meaning]. Selon cette section, une déclaration de la forme T D, où D prend la forme ( D1 ), conserve le type de l'identifiant du déclarant dans la déclaration contenue T D1. Surtout, les parenthèses ne modifient pas le type de l'identifiant du déclarant encapsulé mais peuvent influencer la liaison des déclarateurs complexes.
En substance, vous pouvez mettre n'importe quel « déclarateur » entre parenthèses conformément à la grammaire C. D'une manière générale, un déclarateur est un composant d'une déclaration qui exclut les spécificateurs et types initiaux et encapsule un seul nom.
Prenons l'exemple fourni : int(s). Ici, s représente un déclarateur. Par conséquent, le mettre entre parenthèses ne modifie pas sa signification ou sa substance.
Cette règle revêt une importance particulière dans des scénarios plus complexes. Par exemple, considérons ce qui suit :
int * a [10]; // a is an array of ten pointers to int. int ( * b ) [10]; // b is a pointer to an array of ten ints.
Ici, les parenthèses jouent un rôle essentiel dans la différenciation entre les deux déclarations. Sans eux, vous pourriez interpréter à tort b comme un tableau de dix pointeurs vers int, mais les parenthèses précisent que b est, en fait, un pointeur vers un tableau de dix valeurs int.
En conclusion, la norme C s'adapte aux déclarations de variables entre parenthèses, permettant aux programmeurs de naviguer dans les liaisons de déclarateurs complexes et de maintenir la clarté du code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!