Visual C++ の概念 : C/C++ プログラムのビルド
コンパイラの警告 (レベル 1) C4717
エラー メッセージ
'function' : すべてのコントロールのパス、関数を回帰するとランタイム スタック オーバーフローが発生します。関数を通るすべてのパスに、その関数の呼び出しが含まれています。この関数は、それ自体を再帰的に呼び出してからでなければ終了できないため、この関数は終了しません。
次の例では 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);
}