main_function — main 함수
main_function — main 함수 (Main function)
main 함수는 호스트 환경에서 프로그램의 지정된 시작점인 전역 함수예요. 프로그램은 main이라는 전역 함수를 하나 포함해야 해요.
작동 환경(hosted environment)에서 실행이 여기서 시작돼요.
출처: cppreference
본문
main 함수는 다음 형태 중 하나여야 해요.
int main() { body } // (1) 인자 없는 형태
int main(int argc, char* argv[]) { body } // (2) 환경 인자를 받는 형태
int main(/* implementation-defined */) { body } // (3) 구현 정의 형태
- (1) 환경에서 제공되는 인자와 무관하게 독립적으로 실행되는
main - (2) 환경에서 제공되는 인자를 받는
main
argc와 argv의 이름은 임의로 정할 수 있고, 매개변수의 타입 표현도 자유예요. int argc와 char* argv[]가 표준형이에요.
int main(int argc, char* argv[]) {
// argc: 명령줄 인자의 개수
// argv: 각 인자 문자열의 배열
for (int i = 0; i < argc; ++i) {
std::cout << argv[i] << '\n';
}
return 0;
}
main 함수의 중요한 규칙들:
main은 오버로드될 수 없어요.main은static이 될 수 없어요.main의 주소를 가져가거나main을 호출하는 것은 프로그램 안에서 허용되지 않아요 (단, 재귀는 특정 조건에서 허용돼요).main에는return이 없어도 되며, 이 경우return 0;과 같게 취급돼요.main의 반환 값은 호스트 환경에 전달돼요. 0 또는EXIT_SUCCESS는 성공,EXIT_FAILURE는 실패를 나타내요.
int main() {
std::cout << "Hello, World!\n";
// return 0; // 생략 가능 — 암묵적으로 0 반환
}
프리 스탠딩(freestanding) 환경에서는 main이 요구되지 않을 수 있어요. main이 프로그램 진입점이라는 규칙은 C++ 프로그램의 가장 기본적인 구조예요.