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
620 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!

source:php.cn
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