-
CharSet, MBCS's Problem, WBCS Programming시스템 프로그래밍 2019. 2. 20. 14:31
#3. 윈도우즈 시스템 프로그래밍
3-1. CharacterSet
MBCS 는 문자열의 길이에 따라가 아니라 구성하는 요소마다마다의 바이트를 파악한다.
메모리 면에서는 WBCS 보다는 효율적일 수 있지만, 안정성의 문제에 있어서 취약한 부분이 있다.
WBCS 는 MBCS 와 다르게 모든 문자를 2바이트로 간주한다.
메모리 면에서 비효율적일 수 있으나, 프로그램의 효율성을 운운하기에 그 1바이트의 비중이 작다는 점,
무엇보다 안정성 면에서 우수하다는 것이 중요한 특징이다.
3-2. MBCS's Problem
MBCS 는 다음과 같이 바이트를 계산하는 법과 일반적으로 사람이 생각하는 개념이 달라 혼동되는 경우가 있다. 'ABC한글' 은 바이트로 계산했을 때 그 길이값은 7이지만, 사람들은 5로 인식하기를 바란다.
문자마다 바이트가 다르기 때문에 이러한 문제점이 발생한다.
3-3. WBCS Programming
기존에 했던 프로그램에서 자료형과 함수이름, 문자열 표시방법 심지어 main 함수의 형태들이 바뀐다.
또한 Charset 을 하나로 통일해주어야한다.
따라서 자료형, 함수이름, 문자열 표시방법을 모두 WBCS 로 해주어야한다는 것이다.
char str[ ] = "ABC" > wchar_t str[ ] = L"ABC"
strlen(str) >wcslen(str)
printf("Hello world") > wprintf(L"Hello wolrd")
main 함수, 변수이름, 함수이름, 문자열 표시방법
이 모든 것을 WBCS 형식으로 해주어야 유니코드 프로그래밍이 가능하다!!
다음의 내용들은 " https://www.youtube.com/watch?v=nmfNd8mIRDs&list=PLVsNizTWUw7E2KrfnsyEjTqo-6uKiQoxc&index=3 " 윤성우님의 강의내용 영상을 토대로 작성하였습니다.
'시스템 프로그래밍' 카테고리의 다른 글
64bits-based Programming, GetLastError (0) 2019.03.17 X bit System (0) 2019.03.17 MBCS, WBCS 동시지원 (0) 2019.02.20 프로그램 실행과정, Stored Program Concept, Bus System (0) 2019.02.11 시스템 프로그래밍, 하드웨어 구성, 클럭신호 (0) 2019.02.06 댓글