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;를 사용하는 이유는 에러 없이 정상적으로 함수가 종료되었다는 것을 알리기 위함이다.
'프로그래밍 > C' 카테고리의 다른 글
[C] 댕글링 포인터(Dangling Pointer) (0) | 2021.02.21 |
---|---|
[C] 포인터 변수 자료형이 모두 같은 크기를 가지는 이유 (0) | 2020.11.30 |
[C] 이스케이프 시퀀스 (0) | 2020.09.23 |
[C] 형식 지정자 (0) | 2020.09.23 |
[C] 변수 초기화 (0) | 2020.08.22 |