주 함수 "main()"의 반환 값을 계산하는 방법은 무엇입니까? 난 그냥 주 함수의 반환 값이 실제로 "0"그것이 성공적으로 실행되었는지 확인하고 싶습니다.C++에서 main 함수 "main()"의 반환 값을 구하는 방법은 무엇입니까?
감사합니다.
주 함수 "main()"의 반환 값을 계산하는 방법은 무엇입니까? 난 그냥 주 함수의 반환 값이 실제로 "0"그것이 성공적으로 실행되었는지 확인하고 싶습니다.C++에서 main 함수 "main()"의 반환 값을 구하는 방법은 무엇입니까?
감사합니다.
스택 오버플로에 오신 것을 환영합니다!
0이면 0입니다. 고객님의 함수의 반환 값을 지정하는 사람이 귀하입니다. 확실하지 않은 경우 코드 및/또는 문제를 추가하여 귀찮습니다.
다음 결과가 0을 반환하는지 테스트 하시겠습니까?
int main() {
int rc = doSomething();
std::cout << rc << "\n"; // Just print it out before returning
return rc;
}
을 그러나 당신이 당신의 응용 프로그램을 실행하는 곳에서 쉘의 반환 값을 확인하는 것이 좋습니다 :
int main() {
int rc = doSomething();
return rc;
}
이처럼 할 수있는 UNIX/Linux의
을 (쉘) :
> ./my_app
> echo $?
0
(명령 프롬프트에서) Windows에서
: C 당신이 main()
에 전화를 가로 채거나 스스로를 호출 할 수 없습니다 ++ 것을가
> my_app.exe
> echo %ERRORLEVEL%
참고.
3.6.1 주요 기능
함수
main
는 프로그램 내에서 사용되지 않는다.
따라서 main()
호출을 감싸고 반환 값을 출력하지 마십시오. 그것이 작동하더라도, 이식 가능하지 않을 것입니다. 실제로 두 번 응용 프로그램을 실행하게 될 것입니다.
"네가 원하는 것은 불가능하다."'std :: cout << the_return_value; the_return_value를 반환; – juanchopanza
"C++에서는 main() 호출을 가로 채거나 직접 호출 할 수 없습니다." 아니, 당신이 할 수있는, 내 대답을 내 코드를 참조하십시오 –
아니, main() 안에 함수의 결과를 인쇄 할 뜻은 아닙니다. 모든 main()은 성공적으로 실행되면 마지막에 0을 반환합니다. 이 반환 값 "0"을 출력하고 싶습니다. – OSUCowboy
unix 명령을 사용하여 이전에 실행 한 명령 (이 경우 c 프로그램)의 반환 값을 확인할 수 있습니다.
echo $?
셸 변수 $? 이전 명령의 리턴 코드입니다.
How to find the return value of last executed command in UNIX?
당신이 바로 반환하기 전에 값 COUT, 코드 내에서 값을 선택하십시오.
main
은 특별한 것이므로 대부분 직접 호출 할 수 없습니다. 반환 된 값은 운영 체제로 다시 전달되며 적절한 경우 실행됩니다. C++ 표준은 OS가 다양한 반환 값을 처리하는 방법을 지시 할 수 없으므로 추상화를 제공합니다. return EXIT_SUCCESS
을 사용하여 성공을 나타낼 수 있으며 return EXIT_FAILURE
을 사용하여 실패를 나타낼 수 있습니다. (return 0
을 사용하여 return EXIT_SUCCESS
을 의미 할 수도 있는데, 프로그램의 런타임 시스템이 올바르게 처리해야합니다.)EXIT_SUCCESS
및 EXIT_FAILURE
매크로의 값은 프로그램을 컴파일 한 OS에 적합합니다. 0
이 EXIT_SUCCESS
의 일반적인 값이지만 OS가 다른 값을 요구하는 것은 가능하며 EXIT_SUCCESS
은 해당 OS에 적절한 값을 갖습니다. 심지어 main
에서 반환 된 값을 확인할 수 있다고해도 OS가 성공적인 프로그램에서 기대하는 값을 알지 못해도 많은 정보를 알 수 없습니다.
'main()'의 이름을'notmain()'으로 변경하십시오. 'notmain()'을 호출하는 새로운'main()'함수를 추가하고 반환하는 값을 출력합니다. –
컴파일러가 아닌 반환 값을 결정합니다. 또한,'main()'을 호출하는 것은 비 전통적이며 대수롭지 않다. –
쉘에서'echo $?'는 보통 잘 서비스한다. –