2008-09-02 3 views
40

Visual C++에서 DWORD는 기계, 플랫폼 및 SDK에 따라 다르지만 부호없는 long입니다. 그러나 DWORD는 더블 워드 (2 * 16)이기 때문에 64 비트 아키텍처에서는 여전히 DWORD가 32 비트입니까?32 비트 및 64 비트 코드가있는 DWORD의 크기는 어느 정도입니까?

+6

DWORD는 machine, platform 또는 SDK에 종속적이지 않습니다. –

+0

이것은 질책이지만 기술적으로이 질문은 C 또는 C++에 적용됩니다. C++ 태그를 제거하거나 C 태그를 추가하는 것이 더 좋을지 모르지만 어느 것이 더 좋을지는 잘 모르겠습니다. – jrh

답변

51

실제로 32 비트 컴퓨터에서 단어는 32 비트이지만 DWORD 유형은 16 비트의 오래된 옛날부터 남은 것입니다.

프로그램을 최신 시스템으로 쉽게 이식 할 수 있도록 Microsoft는 모든 이전 유형이 크기를 변경하지 않을 것이라고 결정했습니다.

현재 공식 목록을 찾을 수 있습니다 _PTR로 끝나는 32 비트에서 64 비트로의 전환으로 변경 http://msdn.microsoft.com/en-us/library/aa383751(VS.85).aspx

모든 플랫폼에 의존하는 유형 (DWORD_PTR는 32 비트에서 32 비트 될 것입니다 64 비트 Windows에서 64 비트).

+0

실제 범위는 [여기] (https://msdn.microsoft.com/en-us/library/s3f49ktz.aspx)에 나와 있습니다. –

+0

@LaurieStearn이 기사는 Microsoft 컴파일러가 'DWORD'와 같은 winapi 데이터 유형이 아니라 내부적으로 사용하는 데이터 유형에 관한 것입니다. – jrh

+1

예, 답변의 링크 된 [공식 목록] (https://msdn.microsoft.com/en-us/library/aa383751(VS.85) .aspx)에있는 문서의 범위는 다음과 같습니다. 인용구 : ** DWORD : 32 비트 부호없는 정수 범위는 0에서 4294967295까지입니다. ** –

3

아니요 ... 모든 Windows 플랫폼에서 DWORD는 32 비트입니다. LONGLONG 또는 LONG64는 64 비트 유형에 사용됩니다. 는 MSDN에 따라, 그러나

typedef unsigned long  DWORD; 

:

+0

Windows와 아무 관련이 없습니다. 인텔 용어 – Abyx

+2

@Abyx : typedef DWORD는 매우 Windows입니다. – rubenvb

+2

@rubenvb, 오, 왜'DWORD'라고 불리우며'QBYTE' 나'DUBWD' 같은 것이 아닌가? – Abyx

14

그것은 다음과 같이 정의된다 INT와

32 비트 플랫폼

길고 동의어.

따라서 DWORD는 32 비트 운영 체제에서 32 비트입니다. 별도의 64 비트 DWORD 정의가 있습니다.

typdef unsigned _int64 DWORD64; 

희망이 있습니다.

-2

:) 현대 프로세서의 단어은 32 비트 또는 64 비트입니다. 단순히 메모리 포인터의 길이입니다 (ALU의 용량입니다).

그러나 역사적으로 x86 "단어"는 32 비트가 아니라 16 비트입니다. 따라서 역사적으로 x86을 대상으로하는 Microsoft 라이브러리는 DWORD를 부호없는 길이 즉 "컴퓨터 포인터 크기"로 정의합니다.

그게 전부입니다. 나중에 참조 할 경우 Wikipedia을 참조하십시오.

+1

(1) 잘못된 위키 피 디아 페이지 링크입니다. (2) 질문은 컴퓨터 아키텍처 단어가 아니라 Microsoft의 'DWORD'유형에 관한 것입니다. –

+0

http://en.wikipedia.org/wiki/Word_(computer_architecture) "예를 들어, Microsoft Windows API는 WORD의 프로그래밍 언어 정의를 32 비트 또는 64 비트 API에서 사용할 수 있음에도 불구하고 16 비트로 유지합니다 비트 프로세서는 표준 워드 크기가 각각 32 비트 또는 64 비트가 될 것이다. –

-4

전화 A, dword32, dword64 ... 당신이 원하는대로,하지만 바이트 단어는 2 바이트 더블 워드 (더블 워드)이 개 단어 QWORD (쿼드 단어) 4입니다 8 비트 입니다 긴 32 비트 또는 64 비트 시스템의 단어

은 LONG 또는 INT 같은 별명은 다를 수 있지만, 여전히 DWORD

+4

Microsoft는'WORD'를 2 바이트,'DWORD'를 4 바이트,'QWORD'를 8 바이트로 간주합니다. –

-1

8 비트 바이트 인 더블 워드이다. 2 바이트는 단어입니다. 더블 워드 또는 DWORD는 4 바이트 또는 2 워드입니다.

+1

한 단어의 길이는 프로세서에 따라 다릅니다. DWORD는 2 바이트 단어 16 비트 프로세서가 표준이 될 때 다시 명명되었습니다. Microsoft는 32 비트 이상의 프로세서로 옮겨 갈 때 길이를 변경하지 않기로 결정했습니다. – Ben

관련 문제