All Articles

int main()과 void main()

강의를 듣다가, 교재는 전부 void main()이고 인터넷에서 찾아본 예제는 int main()이라서 무슨 차이가 있는지 궁금했다.

일단 파악한 차이점은 이거다.

  • void main()은 함수 끝에 return이 없어도 됨
  • int main()은 함수 끝에 return이 있어야 함

그러나 이것은 단순히 현상을 관찰한 것이지 이유는 여전히 모르겠어서 따로 더 찾아봤다.

C언어 표준을 따르려면 int main()으로 사용하는 게 맞다. 그런데 int main() 함수에서 리턴하는 return 0; 이 값은 활용도가 떨어져 괜히 한 줄 더 써야하는 수고로움만 주다보니 개발 편의성을 위해 void main()을 허용한 것이라고 한다.

하지만 비표준 문법이 하나씩 사라지는 추세라 void main()을 지원하지 않는 컴파일러가 늘고 있다 하니 int main()return 0;을 쓰는 것이 바람직하겠다.

무지랭이를 도와주셔서 감사합니다. 출처