C & C++/C

[C] void main(), int main(), main() 차이점

Razelo 2021. 7. 3. 10:00

세 형태의 차이점에 대해 이야기해보고자 한다. 

 

사실은 별 차이 없다고 한다. 

 

간략하게 정리하자면 아래와 같다. 

 

함수 정의 앞에 붙은 데이터 형은 함수의 리턴값의 데이터 형이고 int main()이면 main()함수가 종료할때 정수형 값을 리턴하겠다는 뜻이다. void main() 이면 함수가 종료할때 아무 값도 리턴하지 않겠다는 뜻이다. 그리고 그냥 main()은 void main()과 같다고 한다. 

 

main() 함수는 프로그램의 엔트리 포인트이고 운영체제가 실행시켜주는 함수라고 한다. 

그래서 main() 함수의 리턴값은 운영체제가 받아보게 된다고 한다. 

 

운영체제는 프로그램이 종료할때 main() 함수의 리턴값을 받고 이를 통해 프로그램이 왜 종료되었는지 판단한다고 한다. 보통 main()이 0을 리턴하면 정상 종료로 생각하지만 0 이외의 값을 리턴하면 비정상 종료로 간주한다고 한다. 

 

그런데 이 판단은 운영체제의 몫이기 때문에 main() 함수가 어떤 값을 리턴하는지는 사용자에게 중요하지 않다고 한다. 

 

그래서 운영체제에는 의미가 있을진 모르지만 사용자에게는 별 의미가 없다고 한다. (아 물론 개발자에게는 의미가 있겠지용ㅎㅎ)

 

C언어 표준에서 제시하는 가장 이상적인 main() 함수의 정의문은 아래와 같다고 한다. 

 

int mian(int argc, char *argv[], char* env[])


아래 블로그에서 많은 도움을 받았습니다. 

 

감사합니다. 

 

https://www.hackerschool.org/HS_Boards/zboard.php?id=QNA_programming&page=1&sn1=on&divpage=1&sn=on&ss=off&sc=off&keyword=%BF%C0%C7%C7%C4%C9%C0%CC%B0%F8%C0%B0&select_arrange=name&desc=desc&no=1792 

 

프로그래밍

md.house 결론부터 얘기하면, 셋이 아무 차이도 없습니다. 그러나 내부적으로는 큰 차이가 있지요. 함수 정의 앞에 붙는 데이터형은 함수의 리턴값의 데이터형입니다. int main() 하면 main() 함수가 종

www.hackerschool.org

 

반응형