Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C/C++에서 void main과 int main의 차이점 완벽 정리

C/C++에서 void main과 int main의 차이점

C/C++ 프로그래밍을 하다 보면 int main()을 사용하기도 하고, 때로는 void main()을 사용하기도 합니다. 그렇다면 이 둘은 정확히 어떤 차이가 있을까요?

main() 함수의 역할

main() 함수는 다른 일반 함수들과 마찬가지로 인자를 받고 값을 반환할 수 있습니다. 다만 한 가지 기억해야 할 중요한 점은, 프로그램의 실행이 바로 이 main() 함수에서 시작된다는 사실입니다. 즉, 운영체제(OS)가 이 함수를 호출하며, main()이 반환하는 값은 운영체제에 전달됩니다.

void main()과 int main()의 차이

void main()은 main 함수가 어떠한 값도 반환하지 않는다는 의미이며, int main()은 main 함수가 정수형 데이터를 반환할 수 있다는 의미입니다.

프로그램이 단순하고, 코드의 마지막 줄에 도달하기 전에 조기 종료되지 않으며, 오류 없이 정상적으로 실행되는 경우라면 void main()을 사용해도 동작에는 문제가 없습니다.

하지만 exit() 함수를 사용해 프로그램을 강제로 종료해야 하는 상황이라면 반드시 정수값(0 또는 0이 아닌 값)을 반환해야 합니다. 이러한 경우에는 void main()으로는 처리할 수 없습니다.

결론: int main()을 사용하는 것이 좋다

따라서 void main()보다는 int main()을 사용하는 것이 좋은 습관입니다. 실제로 C와 C++ 표준에서는 main 함수의 반환 타입을 int로 규정하고 있기 때문에, 컴파일러 호환성과 코드 이식성을 고려하면 항상 int main()을 사용하고 프로그램이 정상 종료되었음을 알리는 return 0;을 명시하는 것이 가장 안전한 방법입니다.