2. ANSI 문자와 유니코드 문자 그리고 문자열 자료형

char 형은 8 비트 ANSI 문자 표현을 위해 존재.

16비트 유니코드 표현을 위한 wchar_t 자료 형을 built-in 타입으로 사용할 수 있다.  ( 과거에는 컴파일러 스위치가 필요했음 /Zc:wchar_t )


wchar_t c = L'A';


대문자 L 이 유니코드 문자열로 다루게끔 해준다. 

데이터 섹션에 들어가게 될때 인코딩된다. 아스키문자인 경우 각 문자 사이에 0이 삽입된다.


윈도우는 C 언어의 자료형과, 윈도우 자료형을 구분하기 위해 WinNT.h 에 따로 정의한다.


typedef char CHAR;

typedef wchar_t WCHAR;


//8bit

typedef CHAR *PCHAR;

typedef CHAR *PSTR;

typedef CONST CHAR *PCSTR;


//16bit

typedef WCHAR *PWCHAR;

typedef WCHAR *PWSTR;

typedef CONST WCHAR *PCWSTR;


문자/문자열을 가리키는 포인터에 대해서도 별도로 정의하고 있음.


컴파일시 ANSI 문자나 유니코드를 사용하도록 변경가능하게 전처리기를 이용하여 작성할 수 있다.


#ifdef UNICODE

typedef WCHAR TCHAR, *PTCHAR, PTSTR;

typedef CONST WCHAR *PCTSTR;

#define __TEXT(quote) quote // r_winnt


#else

typedef CHAR TCHAR, *PTCHAR, PTSTR;...


#endif