728x90
이 오류는 C언어의 main
함수가 정의될 때, 허용된 인자 수를 초과하거나 부족하게 정의되었을 경우 발생합니다. main
함수는 표준적으로 인자를 받지 않거나, 두 개의 인자(int argc, char *argv[]
)를 받아야 하며, 그 외의 형식은 컴파일 오류를 유발합니다.
표준 C에서는 다음 두 가지 형식만을 main
함수의 선언으로 허용합니다.
int main(void)
int main(int argc, char *argv[])
● 오류 예제
int main(int x) { // 오류: 인자 수가 1개
return 0;
}
컴파일 시 다음과 같은 오류 메시지가 출력될 수 있습니다.
error: ‘main’ takes only zero or two arguments
● 해결 방법
main 함수의 정의는 반드시 표준 형태로 작성해야 하며, 필요에 따라 인자가 없는 형태 또는 인자 두 개를 받는 형태로 선택해야 합니다.
// 인자 없이 정의
int main(void) {
return 0;
}
// 또는 인자 2개 받는 표준 형태
int main(int argc, char *argv[]) {
return 0;
}
● 실전 팁
main
함수는 반드시 인자 없이, 또는 인자 2개로 정의되어야 합니다.- 세 번째 인자인
envp[]
는 일부 시스템에서 허용되지만 표준이 아닙니다. - 코딩 시 main 함수의 선언은 항상 정확하게 지켜야 하며, 반환형도
int
여야 합니다.
main 함수는 프로그램의 시작점이므로 그 형태가 엄격하게 정의되어 있으며, 컴파일러가 정확히 인식할 수 있도록 표준에 맞는 선언을 지키는 것이 중요합니다.
728x90