[C] return 0;를 사용하는 이유

프로그래밍/C · 2020. 8. 22. 15:14
int main()
{
     ...
     
     return 0;
}

 

return은 함수가 종료됐다는 의미로 함수 내의 변수나 어떤 값을 돌려주는 역할을 한다.

 

그러므로, return 0;(혹은 return;)은 해당 함수를 정상적으로 끝내고서 운영체제(Windows, Linux)에게 기술한 값을 반환하고 현재 실행 중인 해당 함수를 벗어나겠다는 뜻이다.

 

즉, return문은 함수의 반환 값을 전달하는 동시에 현재 수행 중인 함수를 끝내는 두 가지 기능을 한다. 그래서 return 0; 이후의 코드는 수행되지 않는다.

 

return 0; 은 int 0을 반환한다는 뜻인데, 운영체제에게 꼭 값 0을 반환한다기보다는 현재 실행 중인 함수를 끝내려고 쓰는 것이다.

(C언어에서 main의 경우 return 0;를 써서 에러 없이 끝났다는 것을 운영체제에게 알려주었는데 이후 시간이 지나면서 C++ 표준에서 main이 값을 리턴하지 않아도 main이 끝나면 암묵적으로 0을 return 하는 것으로 인정했고, 따라서 main에서 만큼은 값을 return하지 않아도 정상적으로 실행된다.)

 

0이 아닌 수(-1, 1... etc)도 다 되지만, 일반적으로 0을 리턴하면 해당 함수를 성공적으로 끝냈다는 의미이다.

 

운영체제(Windows, Linux 등)의 쉘에서 0을 true로 간주하므로 이렇게 하는 것이다.

 

결론: return 0;를 사용하는 이유는 에러 없이 정상적으로 함수가 종료되었다는 것을 알리기 위함이다.