컴파일러 경고(수준 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);
}