C 언어 펀더멘털
Posted 2009.06.08 09:23
문자열 상수를 정의할 때 L keyword를 스트링의 앞에 붙이면 한 문자를 wchar_t형(2byte)으로 메모리상에 잡게 된다.
sizeof("1234567890" ) = 11byte
sizeof(L"1234567890") = 22byte
그러나 L keyword는 선택적으로 붙여야 할 때가 많으므로 이를 편하게 사용하기 위해 _T 매크로를 사용한다.
_T 매크로는다음과 정의되어 있다.
#define _T(x) __T(x)
#define __T(x) L ## x
_T("1234567890") 라고 사용하면 L"1234567890" 로 되기를 기대하는 것이다.
하지만, 이상한 점이 있다. _T가 L ## x 로 바로 매크로로 정의하지 않고 _T는 __T로 __T는 다시 L ## x로 재정의 한다.
실제로 매크로 _T를 __T를 거치지 않고 _T를 L ## x로 바로 정의하여 사용하면 컴파일 에러가 발생한다.
왜 이런 현상이 일어나는 것일까?
이러한 궁금증을 속 시원히 설명하는 C언어 책이 있던가?
C언어 펀더멘털은 이럴 때 필요한 책이다.
수 년간 C언어 표준만을 연구해 온 저자의 치열하고 정확한 설명을 들을 수 있다. 다소 딱딱한 주제이고, 책의 만만치 않은 무게가 약간 거부감을 주지만, 일단 펼치면 마치 소설속에 빠져 들듯이, 재미있는 C언어 표준의 세계로 들어가게 된다.
지식 노동자에게는 새로운 지식은 유희 그 자체이다.
이런 책이 있다는 것은 이땅의 개발들에게 축복이다.
ps. 이 책은 C언어 입문자들에게는 적합하지 않습니다. 시작도 해보기 전에 좌절을 안겨줄수도 있습니다. ㅎㅎ
'paper & book' 카테고리의 다른 글
A Bit-Parallel Search Algorithm for Allocating Free Space (0) | 2009.06.26 |
---|---|
C 언어 펀더멘털 (0) | 2009.06.08 |
2006 IEEE ToCE New Techniques for Real-Time FAT File System in Mobile Multimedia Devices (0) | 2009.05.17 |
Flash-Aware Buffer Management Policy for Portable Media Players (0) | 2009.05.17 |
- Filed under : paper & book
- Tag : C언어, 개념서적, 펀더멘탈
- 0 Comments 0 Trackbacks