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);
}