> 백엔드 개발 > C++ > 본문

C++ 컴파일 오류: 함수가 void를 반환하는데 return 문이 있습니다. 어떻게 해결하나요?

WBOY
풀어 주다: 2023-08-22 13:01:03
원래의
2953명이 탐색했습니다.

C++ 컴파일 오류: 함수가 void를 반환하는데 return 문이 있습니다. 어떻게 해결하나요?

C++ 프로그래밍에서 때때로 다음과 같은 문제가 발생합니다. 함수 선언 및 정의의 반환 값 유형이 void인데 함수 본문에 return 문이 있습니다. return 문은 void 함수에 나타날 수 없기 때문에 컴파일 오류가 발생합니다. 그러면 이 문제를 어떻게 해결합니까? 이 기사에서는 이에 대해 자세히 설명합니다.

먼저 이 오류에 대한 샘플 코드를 살펴보겠습니다.

void func()
{
    // ...
    return 1;
    // ...
}
로그인 후 복사

이 코드에서는 반환 값 유형이 void인 func 함수를 정의합니다. 그러나 함수 본문에서는 반환 값이 1인 return 문이 사용됩니다. 이 경우 컴파일러는 코드를 전달할 수 없으며 오류를 보고합니다.

error: return-statement with a value in function returning 'void' [-Werror,-Wreturn-type]
로그인 후 복사

이 오류는 반환 값 유형이 void인 함수에서 return 문을 사용할 수 없음을 나타냅니다.

그럼 어떻게 해결하나요? 실제로는 매우 간단합니다. return 문에서 반환 값을 삭제하기만 하면 됩니다. 수정된 코드는 다음과 같습니다.

void func()
{
    // ...
    return;
    // ...
}
로그인 후 복사

이제 return 1을 return으로 변경했는데, 이는 값이 반환되지 않음을 의미합니다. 이러한 방식으로 함수는 반환 값 유형이 void라는 요구 사항을 충족하고 컴파일러는 이를 정상적으로 전달할 수 있습니다.

반품문 외에도 다른 곳에서도 이런 문제가 발생할 수 있습니다. 예를 들어, 함수 내에서 반환 값 유형이 void인 지역 변수를 정의하고 함수에서 return 문을 사용하여 지역 변수의 값을 반환하는 경우에도 컴파일 오류가 발생합니다. 이 경우 지역 변수의 반환 값 유형을 다른 유형으로 변경해야 합니다.

또한 C++11에 도입된 auto 키워드를 사용하여 함수의 반환 값 유형을 유추하는 더 나은 솔루션이 있습니다. 이렇게 하면 반환 값 유형을 수동으로 지정할 필요가 없습니다. 예:

auto func()
{
    // ...
    return 1;
    // ...
}
로그인 후 복사

이 예에서는 auto 키워드를 사용하여 함수의 반환 값 유형을 추론합니다. return 1 문이 함수에서 정수 값을 반환하는 데 사용되기 때문에 컴파일러는 반환 값 형식을 int로 유추합니다.

간단히 말하면, C++로 작성할 때 void를 반환하는 함수를 만났는데 return 문에 오류가 있는 경우 return 문의 값을 삭제하거나 auto 키워드를 사용하여 함수가 void를 반환하는지 확인하면 이 문제를 해결할 수 있습니다. void Require의 반환 값 유형을 따릅니다.

위 내용은 C++ 컴파일 오류: 함수가 void를 반환하는데 return 문이 있습니다. 어떻게 해결하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿