Heim >Backend-Entwicklung >C++ >Warum ist `cout
Undefiniertes Verhalten: Cout verstehen
In C ist es unbedingt erforderlich, das Konzept des undefinierten Verhaltens zu verstehen. Undefiniertes Verhalten bezieht sich auf Situationen, in denen das Verhalten des Programms nicht durch den C-Standard spezifiziert ist, was zu unvorhersehbaren Ergebnissen führt.
Bedenken Sie die folgende Aussage:
cout <p>Hier haben wir eine Sequenz von Operationen mit dem Inkrementoperator ( ) und dem Einfügungsoperator (</p><p>Sequenzpunkte sind bestimmte Punkte im Code, an denen der Compiler garantiert, dass alle Nebenwirkungen aufgetreten sind. In der obigen Aussage gibt es jedoch keinen Sequenzpunkt zwischen der Auswertung von a und a. Dies bedeutet, dass die Reihenfolge, in der diese Vorgänge ausgeführt werden, nicht im Standard festgelegt ist.</p><p>Daher kann die Ausgabe dieser Anweisung je nach Implementierung variieren. In bestimmten Fällen könnte die Ausgabe „01“ sein, während sie in anderen Fällen „10“ sein könnte. Der Standard garantiert jedoch nicht, welcher Fall auftritt, sodass das Verhalten undefiniert ist.</p><p><strong>C 17-Update</strong></p><p>Es ist wichtig zu beachten, dass die Regeln für die Ausdrucksauswertung in C wurden in C 17 aktualisiert. In C 17 gilt die folgende Regel für Verschiebungsoperatorausdrücke wie >:</p><p>"In einem Verschiebungsoperatorausdruck E1>E2 wird jede Wertberechnung und jeder Nebeneffekt von E1 vor jeder Wertberechnung und jedem Nebeneffekt von E2 sequenziert ."</p><p>Diese Regel beseitigt das undefinierte Verhalten in der ursprünglichen Anweisung. In C 17 ist die Anweisung cout </p>
Das obige ist der detaillierte Inhalt vonWarum ist `cout. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!