이 오류는 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 문을 통해 종료 코드를 명시해야 합니다.