HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
📝
남득윤 학습 저장소
/
📖
뇌를 자극하는 윈도우즈 시스템 프로그래밍
/
2장. Windows에서의 유니코드(UNICODE)

2장. Windows에서의 유니코드(UNICODE)

문자셋 (Charset)의 종류와 특성

  • SBCS(Single Byte Character Set)
    • 문자를 표현하는데 1바이트
    • 아스키 코드
  • MBCS(Multi Byte Character Set)
    • 한글 2바이트 영문 1바이트
  • WBCS(Wide Byte Character Set)
    • 문자를 표현 하는데 2바이트
    • 유니코드
 
char str[] = "ABC한글"; sizeof(str); // 8 strlen(str); // 7 char str[] = "한글입니다" for(int i = 0 ; i < 5 ; i ++) fputc(str[i], stdout); //한글 for(int i = 0 ; i < 10 ; i ++) fputc(str[i], stdout); //한글입니다
WBCS - C 언어에서
  • char 대신 wchar_t
  • “ABC” 대신 L”ABC”
  • e.g.) wchar_t str[ ] = L”ABC”;
모두 유니코드 기반으로 작성
int main(void){ wchar_t str[] = L"ABC"; int size = sizeof(str); 8 // strlen(str); // compile error int len = wcslen(str); // work! 3 wprintf(L"배열의 크기 : %d \n", size); wprintf(L"배열의 길이: %d \n", len); }
 
매개변수는?? - main → wmain
notion image
 

MBCS와 WBCS 동시지원

 

#include <windoews.h> 안에는

  • Windows 정의 자료형
typedef char CHAR; typedef wchar_t WCHAR; --- #define CONST const typedef CHAR * LPSTR; typedef CONST CHAR * LPCSTR; typedef WCHAR * LPWSTR; typedef CONST WCHAR * LPCWSTR;
 

MBCS와 WBCS 동시 지원 매크로

#ifdef UNICODE typedef WCHAR TCHAR; typedef LPWSTR LPTSTR; typedef LPCWSTR LPCTSTR; #else typedef CHAR TCHAR; typedef LPSTR LPTSTR; typedef LPCS LPCSTR; #endif
 
#ifdef _UNICODE #define __T(x) L##x #else #define __T(x) x #define _T(x) __T(x) #define _TEXT(x) __T(x)
 
함수도 동시지원 매크로 있음 (windows.h)