본문 바로가기
프로그래밍언어/C언어[Error]

[C언어][Error] 029. function ‘main’ must return int – main 함수가 int를 반환하지 않음

by about_IT 2025. 4. 27.

이 오류는 C 프로그램의 진입점인 main 함수가 올바른 반환형을 사용하지 않았을 때 발생합니다. C언어에서 main 함수는 운영체제에 종료 상태를 전달하기 위해 반드시 int형을 반환해야 합니다.


만약 void main()과 같이 작성하거나, 다른 반환형을 사용하면 일부 컴파일러에서는 오류 또는 경고를 출력하게 됩니다. 이는 표준 C 언어 규격에 위배되는 정의이기 때문입니다.



● 오류 예제

#include <stdio.h>

void main() {  // 오류: 반환형이 int가 아님
    printf("Hello World\n");
}

컴파일 시 다음과 같은 오류 또는 경고 메시지가 출력될 수 있습니다.

error: function ‘main’ must return ‘int’


● 해결 방법

main 함수는 반드시 int형으로 선언해야 하며, return 문을 통해 종료 코드를 명시적으로 반환해야 합니다. 일반적으로 0은 정상 종료를 의미합니다.

#include <stdio.h>

int main() {
    printf("Hello World\n");
    return 0;  // 정상 종료
}

출력 결과:

Hello World


● 실전 팁

  • main 함수는 언제나 int main() 또는 int main(int argc, char *argv[]) 형식으로 정의하세요.
  • return 0은 프로그램이 정상적으로 종료되었음을 운영체제에 알립니다.
  • void main()은 구식 문법이며, 현대 표준에서는 허용되지 않습니다.

main 함수는 C 프로그램의 출발점이자 종료 상태를 운영체제에 알려주는 중요한 위치이므로, 반드시 int를 반환하고 return 문을 통해 종료 코드를 명시해야 합니다.