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
Freigeben: 2024-12-13 16:30:13
Original
615 Leute haben es durchsucht

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.
}
Nach dem Login kopieren

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.
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage