main 함수는 특별히 허용되는 몇가지 형식중에 하나 인지 확인하는 작업이 내부적으로 일어 납니다.
항상 main 함수에 command line 관련된 값이 넘어가는데 그것을 사용하지 않을 뿐입니다. c runtime startup code에서 main 을 호출하죠. startup code가 기대하는 main 함수는 항상 같은 이름을 가져야만 제대로 링크 됩니다.
c++ 는 함수 인자를 통해서 overloading이 가능하고 이것은 내부 표현 방식에 함수명 주위에 몇가지 문자를 붙여서 아예 다른 함수처럼 만드는 것이죠.
하지만 c++에서도 main 만큼은 그런 mangling 에서 예외입니다. 이는 C++ 표준에서도 몇가지 종류로 한정하고 있고 이는 위에서 말한 링크 문제가 있기 때문에 그렇습니다.
main 함수는 특별히 허용되는 몇가지 형식중에 하나 인지 확인하는 작업
main 함수는 특별히 허용되는 몇가지 형식중에 하나 인지 확인하는 작업이 내부적으로 일어 납니다.
항상 main 함수에 command line 관련된 값이 넘어가는데 그것을 사용하지 않을 뿐입니다. c runtime startup code에서 main 을 호출하죠. startup code가 기대하는 main 함수는 항상 같은 이름을 가져야만 제대로 링크 됩니다.
c++ 는 함수 인자를 통해서 overloading이 가능하고 이것은 내부 표현 방식에 함수명 주위에 몇가지 문자를 붙여서 아예 다른 함수처럼 만드는 것이죠.
하지만 c++에서도 main 만큼은 그런 mangling 에서 예외입니다. 이는 C++ 표준에서도 몇가지 종류로 한정하고 있고 이는 위에서 말한 링크 문제가 있기 때문에 그렇습니다.
---
http://coolengineer.com
댓글 달기