main 함수는 C 프로그램의 진입점(entry point)으로, 실행 시 가장 먼저 호출되어 프로그램의 전체 실행 흐름을 제어한다. 모든 C 프로그램에는 하나의 main 함수가 필수이며, 이 함수는 프로그램의 초기화, 주요 로직 수행, 종료 시 자원 해제 등을 담당한다. 또한 운영체제와의 상호작용을 통해 프로그램의 실행 종료 방식을 정의한다.
main 함수의 역할
- 프로그램의 시작점으로 초기화 작업과 주요 로직 수행을 담당한다.
- main 함수의 반환값은 운영체제에게 종료 상태를 전달하여, 후속 작업을 결정하는 데 사용된다.
- main 함수가 종료될 때 동적 메모리와 파일 디스크립터 등의 자원을 회수한다.
다양한 main 함수형태
int main() / int main(void)
int main(int argc, char *argv[])
void main() / void main(void)
int main() 또는 int main(void)
- C 표준에서는 main 함수의 반환 타입을 int로 지정하는 것을 권장한다. 0은 정상 종료, 다른 값을 오류이다.
- 두 형태 모두 매개변수가 없음을 나타내지만, int main(void)는 이를 명시적으로 표현한다,
int main(int argc, char *argv[])
- argc는 인자 개수, argv는 인자 값 배열을 나타낸다.
void main() 및 void main(void)
- void main()은 표준이 아니며 반환 값이 없으므로 운영체제와의 통신의 문제가 발생할 수 있다.
3가지 유형 모두 써도 상관은 없으나 권장되는 것은 int main(void) 와 int main(int argc, char *argv[])이다.
또한 하나의 프로그램에 하나의 메인문만 존재한다.
728x90
'C언어' 카테고리의 다른 글
[C언어] typedef uint8_t BOOL (2) | 2024.10.17 |
---|---|
[C언어] 댕글링 포인터(Dangling Pointer)란? (0) | 2024.10.15 |
[C언어] static 키워드란? (0) | 2024.10.11 |
[C언어] volatile 키워드란? (0) | 2024.10.11 |
[C언어] 구조체, 열거형, 공용체란? (0) | 2024.10.10 |