Search
Duplicate

WORD 크기

간단소개
팔만코딩경 컨트리뷰터
ContributorNotionAccount
주제 / 분류
C
C++
Scrap
태그
9 more properties
블로그들마다 word 의 크기에 대한 설명이 전부 다르게 되어 있어서 여러 블로그들을 찾아보고 여러 삽질들을 하면서 최종 결론을 내려보았다..

블로그들의 주장

1.
16bit 32bit 64bit에 따라 다르다
16bit이면 1 word도 16bit
32bit이면 1 word도 32bit
64bit이면 1 word도 64bit
2.
하위 호환성을 위해서 word는 16bit로 고정되어 있고, 32bit체제로 들어서면서 dword개념이 생겨서 dword가 32bit

그럼 word를 직접 찍어보면 되지 않을까?

word 를 인식하지 못하고 컴파일에러가 나기에 혹시 몰라서 대문자로 WORD 도 사용해보았다
결과는 역시나 컴파일이 되지 않았다.
흐음...

그럼 도대체 word는 과연 뭘까?

word 는 기본적으로 정의가 되어 있는 자료형이 아니라고 한다.
여러 블로그들이 주장했던 내용들이 모두 틀린 말은 아니었고, 모든 내용을 종합하여 생각을 해야하는 부분이었다.
일단, word 를 가장 잘 표현하는 정의는 해당 CPU의 기본 처리 단위이다.
따라서 word는 운영체제마다 그 크기를 다르게 표현되는 것이 기본이다. (16bit, 32bit, 64bit)
하지만 Intel사에서는 기존의 코드들과의 호환성을 고려하여 word 를 운영체제에 따라 고려를 한 것이 아니라 16bit로 고정해두었고, 32bit의 경우는 DWORD, 64bit의 경우는 QWORD(Intel사에서 정의한 WORD를 사용하고 싶으면 minwindef.h
WORD, DWORD, QWORD 그 녀석들의 이야기..
WORD는 결국 사용자 정의 자료형이라는 얘기고, 정의하는 사람마다 다를 수 있다는 것이다.
기본 자료형으로 재정의된 WORD 는 운영체제마다 능동적으로 그 길이가 변하게 될 것이다.
운영체제마다 능동적으로 그 길이가 변한다고..?
따라서, WORD를 굳이 재정의 하는 것은 그 길이를 능동적으로 정의하고 명시적으로 해당 CPU의 기본 처리 단위 를 나타내기 위해서이다.

최종결론(뇌피셜주의)

1.
WORD 는 기본적으로 정의가 되어 있는 자료형이 아니다.
2.
각각 정의되어 있는 내용이 조금씩 차이가 있음
3.
기본적으로 16bit는 16bit, 32bit는 32bit, 64bit는 64bit 형식을 따라감