c언어

int main(void)정리

lsjking911 2026. 5. 30. 21:07

c언어를 프로그래밍 하다보면 메인 함수를 무조건 저런식으로 int main(){}이렇게 시작하게 되는 데 왜 이렇게 짜는 지 고민해본적 있으신가요?

📘 int main(void) 자세한 설명

int main(void){
    return 0;
}
 

이 코드는 크게 4부분으로 나눠서 이해하면 된다:

1. int   → 반환 타입
2. main  → 함수 이름 (프로그램 시작점)
3. void  → 입력 없음
4. { }   → 실행 영역

1. main 함수의 역할 (가장 중요🔥)

프로그램이 시작되는 유일한 함수

👉 C 프로그램 실행하면 내부적으로:

운영체제(OS) → main() 호출

즉,컴퓨터는 무조건 main부터 실행한다

흐름

int main(void){
    printf("Hello");
    return 0;
}

실행 순서:

  1. 프로그램 시작
  2. main 함수 진입
  3. 코드 실행
  4. return 실행 → 프로그램 종료

2. int (반환 타입)

int main(void)
 
 

👉 의미:

이 함수는 실행이 끝나면 정수(int)를 하나 반환한다


✔ 왜 반환하냐?

프로그램은 끝날 때 운영체제(OS)에 결과를 알려줌

 
return 0;​

👉 의미:

  • 0 → 정상 종료
  • 0 이외 → 오류 또는 다른 상태

✅ 이해 포인트

👉 사람이 보려고 하는 게 아니라
👉 컴퓨터(OS)에게 상태를 알려주는 용도


3. void (입력 없음)

👉 의미:

이 함수는 외부에서 입력값을 받지 않는다


✔ 쉽게 말하면

  • 프로그램 시작할 때 👉 아무 값도 전달받지 않음

✅ 비교

int main(void)        // 입력 없음
int main(int a)       // 입력 있음
 

👉 실제로는 이런 것도 있음:

int main(int argc, char *argv[])
 

👉 실행할 때 옵션(값)을 넘길 수 있음

“값을 넘긴다”는 게 무슨 뜻이냐

👉 한 줄로 말하면:프로그램을 실행할 때 시작하면서 데이터를 같이 전달하는 것

 

argv는 프로그램 실행할 때 값을 같이 전달하는 방식이며, 주로 리눅스나 터미널 환경에서 사용되고 기본 C 학습 단계에서는 많이 사용되지 않는다.

 


✅ 4. { } (중괄호)

{
    // 코드
}
 

👉 의미:

함수의 실행 코드를 포함하는 영역

👉 이 안의 코드가 실행됨


5. return 0;

return 0;
 

👉 의미:

main 함수 실행이 끝났다는 것을 알림

✅ 핵심

  • 함수 종료
  • OS에 결과 전달

✅ 6. 전체 의미 한 번에

int main(void)

👉 풀어서 해석하면:

“입력을 받지 않고 실행을 시작하며, 실행이 끝나면 정수 값을 반환하는 프로그램의 시작 함수”


✅ 7. 구조까지 포함한 완전 해석

int main(void){
    return 0;
}
 

👉 의미:

  1. 프로그램 시작
  2. main 함수 진입
  3. 코드 실행
  4. return으로 종료 상태 전달

✅ 8. 비유로 이해

  • main → 프로그램 입구 🚪
  • void → 들어올 때 들고 오는 것 없음
  • int → 나갈 때 결과 보고
  • return → “끝났습니다” 보고

✅ ✅ 최종 정리

int main(void)은 C 프로그램의 시작 함수로, 외부 입력(매개변수)을 받지 않고 실행되며, 실행이 종료되면 정수 값을 운영체제에 반환하는 함수이다.


✅ ✅ 시험용 초압축

  • main → 시작
  • void → 입력 없음
  • int → 결과 반환
  • return → 종료