


Warum erzeugt meine nicht ungültige C-Funktion, die keinen Wert zurückgibt, keinen Compilerfehler?
Dec 16, 2024 am 08:27 AMNicht-Void-Funktion gibt keinen Wert im C-Code zurück
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:
- gcc und clang: Kann mit dem Flag -Wall eine Warnung generieren (Warnung: Steuerung erreicht Ende der nicht leeren Funktion [-Wreturn-type] ). Dies kann mithilfe des Flags -Werror=return-type in einen Fehler umgewandelt werden.
- Visual Studio: Erzeugt standardmäßig den Fehler C4716 („Min“: muss einen Wert zurückgeben) oder eine Warnung C4715, wenn nicht alle Codepfade a zurückgeben Wert.
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!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert?

GULC: C -Bibliothek von Grund auf neu gebaut

C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte

Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die?

eindeutiger Gebrauch und Phrasenfreigabe

Wo ist der Rückgabewert der C -Sprachfunktion im Speicher?

Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)?

Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient?
