와이드 문자열

gga·2021년 5월 20일
0

C

목록 보기
1/1

와이드 문자열

정의

항상 16비트 크기의 다국어 문자 코드이다. 와이드 문자 형식은 wchar_t 이다.

TCHAR 와 wchar_t 비교

  와이드 문자열을 써야했었을 때 검색을 통해 THCARwchar_t 타입을 발견했다. 하지만 그 당시 작성된지 오래된 글을 주로 클릭했는지 TCHAR로 쓰여진 글이 더 많았고, TCHAR를 사용하게 되었다. 나중에는 소스코드에 wchar_tTCHAR가 혼용된 상태가 되었다.

  코드 리팩토링 단계에서 이를 하나로 통일해야 된다는 생각을 했고 검색을 통해 TCHAR에 대해서 더 알게 됐다.

TCHAR is macro

  TCHAR를 사용하는 경우, 문자가 유니코드일 경우 wchar_t에 매핑되고 유니코드가 아닐 시 char에 매핑된다.

  또한 Window API 함수를 사용할 경우, 유니코드로 설정되어 있으면 MessageBox는 MessageBoxW에 매핑되고 그렇지 않으면 MessageBoxA에 매핑된다.

결론 : 그래서 TCHAR와 wchar_t 중 어떤 걸 써야하나?

  Windows 95/98/Me 가 유니코드를 지원하지 않았지만 그 이후 버전부터는 유니코드가 기본 문자 집합이 되었다. 그러므로 특별한 경우가 아닌 이상, TCHAR를 쓰기보단 wchar_t 사용을 권장합니다.

참고

https://docs.microsoft.com/ko-kr/cpp/c-language/multibyte-and-wide-characters?view=msvc-160

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/c7ea5d5b-453e-4326-9b97-0a133d3fef36/what-exactly-is-the-difference-between-tchar-and-wchart?forum=vcgeneral

0개의 댓글