컴파일러 경고(수준 4) C4702
업데이트: 2007년 11월
오류 메시지
접근할 수 없는 코드입니다.
unreachable code
이 경고는 Visual Studio .NET 2003의 컴파일러 규칙에 따라 접근할 수 없는 코드가 발견되었기 때문에 발생합니다. 컴파일러(백 엔드)에서 접근할 수 없는 코드를 발견하면 수준 4 경고인 C4702가 발생합니다.
Visual Studio .NET 2003과 Visual Studio .NET 버전의 Visual C++ 모두에서 올바른 코드가 되도록 하려면 접근할 수 없는 코드를 제거하거나 실행 흐름에서 모든 소스 코드에 접근할 수 있도록 하십시오.
자세한 내용은 컴파일 타임의 주요 변경 내용 요약을 참조하십시오.
예제
다음 샘플에서는 C4702 오류가 발생하는 경우를 보여 줍니다.
// C4702.cpp
// compile with: /W4
#include <stdio.h>
int main() {
return 1;
printf_s("I won't print.\n"); // C4702 unreachable
}
/GX, /EHc, /EHsc 또는 /EHac를 사용하여 컴파일할 때 extern C 함수를 사용하는 경우 코드에 접근하지 못할 수 있습니다. extern C 함수가 throw되지 않는 것으로 간주하여 catch 블록에 액세스할 수 없기 때문입니다. 함수를 throw할 수 있으므로 이 경고가 불필요한 경우 throw된 예외에 따라 /EHa 또는 /EHs를 사용하여 컴파일하십시오.
자세한 내용은 /EH(예외 처리 모델)를 참조하십시오.
다음 샘플에서는 C4702 오류가 발생하는 경우를 보여 줍니다.
// C4702b.cpp
// compile with: /W4 /EHsc
#include <iostream>
using namespace std;
extern "C" __declspec(dllexport) void Function2(){}
int main() {
try {
Function2();
}
catch (...) {
cout << "Exp: Function2!" << endl; // C4702
}
}