Parenthèses dans la déclaration de variable en C
Une observation particulière est apparue dans la programmation C : la possibilité de placer des déclarations de variables entre parenthèses. Cet aspect a généré des intrigues, suscitant des questions sur sa fonctionnalité.
Considérez l'extrait de code :
<code class="cpp">int main() { int(s); }</code>
Étonnamment, ce code crée une variable valide nommée s, ce qui incite à une enquête plus approfondie sur le mécanisme sous-jacent. .
Selon [dcl.meaning] dans la norme C :
"Dans une déclaration T D où D a la forme ( D1 ), le type de l'identifiant du déclarant contenu est le même comme celui de l'identifiant du déclarant contenu dans la déclaration T D1."
Cette instruction indique que les parenthèses ne modifient pas le type de l'identifiant du déclarant intégré (dans ce cas, s). Cependant, elles peuvent avoir un impact sur la liaison des déclarateurs complexes.
De manière simpliste, les parenthèses peuvent englober n'importe quel déclarateur de la grammaire C. Par exemple, dans le code donné, s est un déclarateur, et les parenthèses ne modifient pas sa signification.
L'utilité des parenthèses devient évidente lorsqu'il s'agit de scénarios plus complexes. Prenons cet exemple :
<code class="cpp">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.</code>
Dans ce cas, les parenthèses permettent de distinguer efficacement les deux types de pointeurs. Sans eux, l'interprétation de ces déclarations ne serait pas claire.
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!