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
Linda Hamiltonoriginal
2024-12-13 16:30:13661parcourir

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.
}

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.
}

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:
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