HOWTO · C++

C++에서 DWORD와 부호 없는 Int의 차이점

이 문서에서는 Windows API에서 사용되는 DWORD와 C++의 부호 없는 정수 간의 차이점에 대해 설명합니다. 종종 그들은 같은 것처럼 보이지만 항상 그런 것은 아닙니다.

이 페이지의 내용

이 기사에서는 C++에서 DWORD의 일반적인 사용에 대해 다룰 것이며, 이는 현재 동일한 값을 가지더라도 unsigned int와 근본적으로 다릅니다.

C++에서 DWORDunsigned int의 차이점

정의에 따르면 unsigned int최소 16비트 길이입니다. unsigned int는 일반적으로 플랫폼에 따라 다릅니다.

DWORD더블 워드를 의미합니다.

Microsoft WORD는 16비트 길이이므로 DWORD는 모든 플랫폼에서 32비트입니다. 또한 DWORD는 C++의 유형이 아닙니다. 대신 <windows.h>에 정의됩니다.

코드가 DWORD를 예상할 때마다 DWORD를 사용하십시오. (이 기사를 작성하는 시점에서) unsigned int도 마찬가지로 작동합니다.

C++의 향후 버전은 unsigned int(C++ 지침을 여전히 준수함)에 대해 약간 다른 정의를 가질 수 있지만 DWORD는 변경되지 않을 것입니다.

Microsoft는 DWORD를 정의하기로 선택했으며 다른 많은 API 개발자가 해당 유형을 정의하기로 선택한 이유를 설명합니다.

Microsoft는 서로 다른 CPU 아키텍처, 즉 16비트 및 32비트 프로세서와 최근에는 64비트 프로세서의 문제를 해결해야 했습니다.

1980년대에는 C++ 컴파일러도 표준화되지 않았습니다. 서로 다른 OS 간에는 어느 정도의 호환성이 필요했습니다.

또한 동일한 개발 API(현재 WinAPI로 알려짐)가 데스크톱, 모바일 칩, 임베디드 시스템 및 서버에 사용되었습니다.

따라서 DWORD와 같은 유형 정의를 갖는 것은 서로 다른 시스템, 프로그래밍 언어, 컴파일러 등 간에 작업할 때 도움이 되었습니다.