다음을 통해 공유


noreturn

Microsoft 전용

이 __declspec 특성은 함수가 반환되지 않음을 컴파일러에 알립니다. 그 결과 컴파일러는 __declspec(noreturn) 함수 호출 후의 코드에 접근할 수 없다는 사실을 인식합니다.

컴파일러가 값을 반환하지 않는 제어 경로를 가진 함수를 발견할 경우 경고(C4715) 또는 오류 메시지(C2202)가 생성됩니다. 반환되지 않는 함수로 인해 제어 경로에 도달할 수 없으면 **__declspec(noreturn)**를 사용하여 이 경고나 오류가 발생하지 않도록 할 수 있습니다.

참고

반환될 함수에 __declspec(noreturn)를 추가하면 정의되지 않은 동작이 발생할 수 있습니다.

예제

다음 샘플에서는 else 절에 return 문이 없습니다. fatal을 **__declspec(noreturn)**로 선언하면 오류 또는 경고 메시지가 발생하지 않습니다.

// noreturn2.cpp
__declspec(noreturn) extern void fatal () {}

int main() {
   if(1)
     return 1;
   else if(0)
     return 0;
   else
     fatal();
}

참고 항목

참조

__declspec

C++ 키워드