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

argcargv의 이름은 임의로 정할 수 있고, 매개변수의 타입 표현도 자유예요. int argcchar* 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오버로드될 수 없어요.
  • mainstatic이 될 수 없어요.
  • 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++ 프로그램의 가장 기본적인 구조예요.

더 알아보기 (Learn more)

cppreference