Déclaration de variable dans une expression if en C
En C , la syntaxe de déclaration de variable dans la condition d'une expression if est souvent limitée. La question se pose de savoir si ces limitations sont basées sur la norme ou spécifiques au compilateur.
La norme C de 2003 (6.4.3) autorise les déclarations de variables dans une condition if, avec une portée s'étendant aux sous-instructions contrôlées. Cependant, il n'interdit pas explicitement les parenthèses autour de la déclaration ou les déclarations multiples dans la condition.
Les versions antérieures de C se comportaient de manière incohérente en ce qui concerne les parenthèses et les déclarations multiples. Dans les exemples de code fournis :
Cette limitation n'est pas pratique pour les scénarios où une seule déclaration est requise dans la condition.
Solution C 17
C 17 a introduit une solution à ce problème :
if (int a = Func1(), b = Func2(); a && b) { // Do stuff with a and b. }
Cette syntaxe utilise un point-virgule (;) pour séparer la déclaration de la condition. Il permet de déclarer plusieurs variables dans une seule condition, éliminant ainsi l'inconvénient précédent.
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!