2009년 04월 26일
CRT main
아래의 내용은 정보문화사 발행 저자 유동근 님의 "윈도우즈 MFC 프로그래밍" 책을 보고 정리한 것 입니다.
흔히, Win32 어플리케이션의 시작점은 main, WinMain 함수로 알고 있다.
하지만, 실제로 시작하는 것은 C-Runtime main 이다.
줄여서 CRT main 이라고 한다.
다음의 코드를 보자.
class FirstClass
{
public:
FirstClass();
};
FitstClass::FirstClass() { std::cout << "First Class 생성자" << std::endl; }
FirstClass fc;
void main()
{
std::cout << "Run Main" << std::endl;
}
위에 코드를 실행하면 결과는
"First Class 생성자"
"Run Main"
이 나오게 된다.
즉, main 함수에 당도하기 전에 전역변수의 생성자가 불리는 것 이다.
CRT main 이 전역변수의 생성을 하는 것 이다.
그리고 하는 또 하나의 중요한 작업이 new등으로 생기는 동적할당 메모리 등에
할당될 힙 메모리를 초기화 하는 일을 한다.
new연산은 내부적으로 malloc 함수를 사용한다.
그 malloc 함수 내부에는 HeapAlloc 함수로 힙 메모리를 얻어 오는데,
이 힙 메모리는 누가 초기화 하는 것 일까?
바로 CRT main 인 것 이다.
# by | 2009/04/26 02:13 | PublicPrograming | 트랙백 | 덧글(0)




