기본 콘텐츠로 건너뛰기

라벨이 CRT인 게시물 표시

신입 개발자를 위한 CRT 이야기

VECTOR SPACE | vector3 http://blog.naver.com/vector3/60036721563 신입 개발자를 위한 CRT 이야기 신영진 pop@jiniya.net CRT란 C Runtime Library를 말한다. C Runtime Library란 각종 C언어의 표준 함수들을 포함하고 있는 거대한 라이브러리다. printf, scanf, atoi, fgets등의 C언어를 처음 익힐 때 배웠던 함수들이 이 라이브러리에 모두 포함되어 있다. 기본적으로 Visual C++에는 총 세 가지 종류의 CRT가 포함되어 있다. 단일 스레드(ML), 다중 스레드(MT), 다중 스레드 DLL(MD)이 그것이다. 이 세 가지도 각각 릴리즈 버전과 디버그 버전이 존재하기 때문에 정확하게는 총 여섯 가지가 있는 셈이다. 동일한 함수를 구현하고 있는 라이브러리를 여섯 가지나 만들어둔 이유는 베스킨라빈스에 아이스크림이 서른 가지가 넘게 있는 이유와 동일하다. 그때그때 상황에 맞게 골라서 쓰기 위해서이다. 당연히 베스킨라빈스의 아이스크림이 모두 맛이 틀리듯이 이 CRT들도 종류에 따라서 미묘한 차이가 있다. <표 1>에는 각 CRT의 종류별 특징이 나와있다. 디버그 CRT의 경우는 ASSERT 경고문이 포함되어 컴파일 되었다는 특징을 추가적으로 가지고 있다. 표 1 CRT 종류별 특징 CRT 라이브러리 특징 단일 스레드 libc.lib 단일 스레드 전용으로 설계된 CRT 다 . 멀티 스레드에 비해서 빠르다 . 이 스레드에 포함된 일부 함수들은 멀티 스레드에서는 정상적으로 동작하지 않는다 . Visual Studio 2005 부터는 더 이상 단일 스레드 CRT 를 지원하지 않는다 . 멀티 스레드 libcm...