Frage:
Dieser C-Code unten hat einen Nicht-void-Funktion, die keinen Wert zurückgibt:
static tvec4 Min(const tvec4& a, const tvec4& b, tvec4& out) { tvec3::Min(a,b,out); out.w = min(a.w,b.w); }
Warum wird es ohne kompiliert? Fehler?
Antwort:
Dieses Verhalten ist gemäß dem C 11-Standardentwurf Abschnitt 6.6.3 Absatz 2 undefiniert, der besagt, dass das Ende eines Werts abfließt -returning-Funktion führt zu undefiniertem Verhalten.
Compiler-Warnungen und Fehler:
Auswirkungen:
Undefiniertes Verhalten kann zu unvorhersehbaren Ergebnissen führen, einschließlich Programmabstürzen. Es wird empfohlen, Compiler-Optionen wie -Wall und -Wextra zu verwenden, um Fälle von undefiniertem Verhalten zu erkennen und zu beheben.
Das obige ist der detaillierte Inhalt vonWarum erzeugt meine nicht ungültige C-Funktion, die keinen Wert zurückgibt, keinen Compilerfehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!