Variablendeklaration im „if“-Ausdruck: Erläuterung der Regeln
Variablen, die innerhalb einer „if“-Ausdrucksbedingung deklariert wurden, waren ein Fragezeichen für Programmierer seit einiger Zeit. Der C-Standard legte zunächst den Umfang dieser Variablen fest, es blieben jedoch Unklarheiten hinsichtlich Klammern und Mehrfachdeklarationen.
Im bereitgestellten Beispiel schlägt der Compiler die Kompilierung fehl, wenn Klammern um die Variablendeklaration verwendet werden:
if((int a = Func1())) { // Fails to compile. }
Dieses Verhalten, das sich auch auf Fälle mit mehreren Deklarationen in einer einzigen Bedingung erstreckt, ist auf die Regel zurückzuführen, dass die Deklaration unmittelbar vor der Bedingung selbst stehen muss. Klammern verstoßen gegen diese Regel.
Mit der Einführung von C 17 hat sich die Situation jedoch geändert:
if (int a = Func1(), b = Func2(); a && b) { // Do stuff with a and b. }
Jetzt ist es möglich, Variablen in Klammern zu deklarieren, indem ; um die Deklaration von der Bedingung zu trennen. Diese Erweiterung erweitert die Flexibilität von „Wenn“-Bedingungen.
Das obige ist der detaillierte Inhalt vonWie hat C 17 die Regeln für die Variablendeklaration in „if'-Ausdrücken geändert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!