Avertissement du compilateur (niveau 1) C4717

'function' : récursif sur tous les chemins de contrôle, la fonction entraîne le dépassement de capacité de la pile d’exécution

Chaque chemin d’accès à une fonction contient un appel à la fonction. Étant donné qu’il n’existe aucun moyen de quitter la fonction sans s’appeler d’abord de manière récursive, la fonction ne se quittera jamais.

L’exemple suivant génère l’erreur C4717 :

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