Freigeben über


noreturn

Microsoft-spezifisch

Dieses __declspec-Attribut weist den Compiler an, dass keine Funktion zurückgegeben wird. Folglich weiß der Compiler, dass der Code, der einem Aufruf einer __declspec(noreturn)-Funktion folgt, nicht erreichbar ist.

Wenn der Compiler eine Funktion mit einem Kontrollpfad findet, die keinen Wert zurückgibt, wird eine Warnung (C4715) oder Fehlermeldung (C2202) generiert. Wenn der Kontrollpfad wegen einer Funktion, die nie zurückgegeben wird, nicht erreicht werden kann, können Sie __declspec(noreturn) verwenden, um diese Warnung bzw. diesen Fehler zu verhindern.

Hinweis

Das Hinzufügen von __declspec(noreturn) zu einer Funktion, die zurückgegeben werden soll, kann ein nicht definiertes Verhalten zur Folge haben.

Beispiel

Im folgenden Beispiel enthält die else-Klausel keine return-Anweisung. Das Deklarieren von fatal as __declspec(noreturn) vermeidet einen Fehler oder eine Warnmeldung.

// noreturn2.cpp
__declspec(noreturn) extern void fatal () {}

int main() {
   if(1)
     return 1;
   else if(0)
     return 0;
   else
     fatal();
}

Siehe auch

Referenz

__declspec

C++-Schlüsselwörter