Heim >Backend-Entwicklung >C++ >Wie hat C 17 die Regeln für die Variablendeklaration in „if'-Ausdrücken geändert?

Wie hat C 17 die Regeln für die Variablendeklaration in „if'-Ausdrücken geändert?

Linda Hamilton
Linda HamiltonOriginal
2024-12-13 16:30:13615Durchsuche

How Has C  17 Changed the Rules for Variable Declaration in `if` Expressions?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn