Maison > développement back-end > C++ > Comment C 17 a-t-il modifié les règles de déclaration des variables dans les expressions « if » ?

Comment C 17 a-t-il modifié les règles de déclaration des variables dans les expressions « if » ?

Linda Hamilton
Libérer: 2024-12-13 16:30:13
original
691 Les gens l'ont consulté

How Has C  17 Changed the Rules for Variable Declaration in `if` Expressions?

Déclaration de variable dans une expression « if » : clarification des règles

Les variables déclarées dans une condition d'expression « if » ont été un point d'interrogation pour programmeurs depuis un certain temps. Le standard C décrivait initialement la portée de ces variables, mais des ambiguïtés subsistaient concernant les parenthèses et les déclarations multiples.

Dans l'exemple fourni, le compilateur ne parvient pas à compiler lorsque des parenthèses sont utilisées autour de la déclaration de variable :

if((int a = Func1()))
{
    // Fails to compile.
}
Copier après la connexion

Ce comportement, qui s'étend également aux cas de déclarations multiples dans une seule condition, est dû à la règle selon laquelle la déclaration doit immédiatement précéder la condition elle-même. Les parenthèses enfreignent cette règle.

Cependant, avec l'introduction du C 17, la situation a changé :

if (int a = Func1(), b = Func2(); a && b)
{
    // Do stuff with a and b.
}
Copier après la connexion

Désormais, il est possible de déclarer des variables entre parenthèses, en utilisant ; pour séparer la déclaration de la condition. Cette amélioration étend la flexibilité des conditions « si ».

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal