main함수는 어떻게 인자를 받기도 하고 안받기도 하나요.

toy의 이미지

일반적인 함수는 인자를 받거나 안받거나 둘중하나인데.....
main함수는 어떻게 인자를 받기도 하고 안받기도 하나요. :oops: :oops:

pynoos의 이미지

main 함수는 특별히 허용되는 몇가지 형식중에 하나 인지 확인하는 작업이 내부적으로 일어 납니다.

항상 main 함수에 command line 관련된 값이 넘어가는데 그것을 사용하지 않을 뿐입니다. c runtime startup code에서 main 을 호출하죠. startup code가 기대하는 main 함수는 항상 같은 이름을 가져야만 제대로 링크 됩니다.

c++ 는 함수 인자를 통해서 overloading이 가능하고 이것은 내부 표현 방식에 함수명 주위에 몇가지 문자를 붙여서 아예 다른 함수처럼 만드는 것이죠.
하지만 c++에서도 main 만큼은 그런 mangling 에서 예외입니다. 이는 C++ 표준에서도 몇가지 종류로 한정하고 있고 이는 위에서 말한 링크 문제가 있기 때문에 그렇습니다.