seonjoo2030   2년 전

한참 컴파일 에러가 나서 고민했다가 return;이라고 되어 있는 부분을 return 0;으로 바꾸니까 맞았다고 나오네요;;

혹시 왜 그런건지 아시는 분 계시면 알려주세요!!!

47번 째 라인에 있는 return 0; 에 대해서 0이 있고 없고에 따라 컴파일 에러가 나느냐 안나느냐 차이가 있습니다 ㅜㅜ

gallopsys   2년 전

int main(void)의 반환값은 프로그램의 동작 상태의 결과값을 확인하기 위해서 반환됩니다.

return 0;로 종료됐다면 프로그램은 정상 종료된 것이고, 그 이외의 값은 비정상적으로 프로그램이 종료됐다는 걸 의미합니다.

하지만 return;의 의미는 값을 반환하지 않겠다는 것을 의미하게 되며 이는 프로그램이 정상적으로 종료되었는지, 비정상적으로 종료되었는지 알 길이 없다는 것입니다.

그러니까, 프로그램이 중간에 문제가 생겨 런타임 에러를 내보내야 하는지, 아닌지를 채점 프로그램이 판단하기 힘들다는 뜻이죠.

따라서 void main()과 같은 표현은 컴파일 에러를 일부러 발생시켜 백준 온라인 저지 시스템에서 막는 거라고 보면 되겠습니다.

seonjoo2030   2년 전

와...명쾌한 답변 정말 감사드립니다!!

jh05013   2년 전

컴파일 에러가 아니라 런타임 에러네요. 비정상 종료로 간주한 것 같습니다.

댓글을 작성하려면 로그인해야 합니다.