Maison > développement back-end > C++ > Le C 17 peut-il déclarer des variables dans une condition « si » ?

Le C 17 peut-il déclarer des variables dans une condition « si » ?

Linda Hamilton
Libérer: 2024-12-02 09:15:13
original
742 Les gens l'ont consulté

Can C  17 Declare Variables Inside an 'if' Condition?

Déclaration de variable C dans l'expression 'if' : résolue en C 17

En C, la déclaration de variables dans l'expression de condition d'une instruction 'if' est une pratique de longue date limitation. Depuis C 17, cette restriction a été levée.

Auparavant, les variables déclarées dans une condition « if » étaient limitées aux sous-instructions de l'instruction « if ». Il était interdit de mettre la déclaration entre parenthèses et une seule déclaration était autorisée par condition. Cette limitation n'était pas pratique dans les cas où l'initialisation de la variable dans la condition était nécessaire.

Considérez l'extrait de code :

bool a = false, b = true;

if (bool x = a || b) // Cannot declare x within the condition
{

}
Copier après la connexion

Pour initialiser x à false dans la portée « if », des parenthèses étaient requises en raison de la priorité des opérateurs. Cependant, les parenthèses n'étaient pas autorisées, ce qui exigeait que x soit déclaré en dehors du « si ». Cela a divulgué la déclaration à une portée plus large.

Dans C 17, cette contrainte a été assouplie. Le code suivant est désormais valide :

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

Notez l'utilisation de ";" pour séparer la déclaration de la condition. Cela permet plusieurs déclarations et l'utilisation de parenthèses le cas échéant.

Par conséquent, ce qui était auparavant non conforme est désormais possible avec l'introduction de C 17.

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