Compilerwarnung (Stufe 1) C4717
Aktualisiert: November 2007
Fehlermeldung
'Funktion': Rekursiv für alle Steuerelementpfade. Die Funktion verursacht einen Stapelüberlauf zur Laufzeit.
'function' : recursive on all control paths, function will cause runtime stack overflow
In jedem durch eine Funktion verlaufenden Pfad ist ein Aufruf dieser Funktion enthalten. Da die Ausführung der Funktion nicht beendet werden kann, ohne dass sie sich selbst zuvor rekursiv aufruft, wird die Funktion niemals beendet.
Im folgenden Beispiel wird C4717 generiert:
// C4717.cpp
// compile with: /W1 /c
// C4717 expected
int func(int x) {
if (x > 1)
return func(x - 1); // recursive call
else {
int y = func(0) + 1; // recursive call
return y;
}
}
int main(){
func(1);
}