32비트 및 64비트 코드를 포함하는 DWORD의 크기는 얼마나 됩니까?

StackOverflow https://stackoverflow.com/questions/39419

  •  09-06-2019
  •  | 
  •  

문제

Visual C++에서 DWORD는 시스템, 플랫폼 및 SDK에 따라 달라지는 부호 없는 long입니다.그러나 DWORD는 더블 워드(즉, 2 * 16)이므로 64비트 아키텍처에서 DWORD는 여전히 32비트입니까?

도움이 되었습니까?

해결책

실제로 32비트 컴퓨터에서 워드는 32비트이지만 DWORD 유형은 16비트의 옛 시절의 잔재입니다.

프로그램을 최신 시스템으로 쉽게 포팅할 수 있도록 Microsoft는 모든 이전 유형의 크기가 변경되지 않기로 결정했습니다.

공식 목록은 여기에서 찾을 수 있습니다:http://msdn.microsoft.com/en-us/library/aa383751(VS.85).aspx

32비트에서 64비트로 전환하면서 변경된 모든 플랫폼 종속 유형은 _PTR로 끝납니다(DWORD_PTR은 32비트 Windows에서는 32비트이고 64비트 Windows에서는 64비트입니다).

다른 팁

이는 다음과 같이 정의됩니다.

typedef unsigned long       DWORD;

그러나 MSDN에 따르면 다음과 같습니다.

32 비트 플랫폼에서 Long은 Int와 동의어입니다.

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

typdef unsigned _int64 DWORD64;

도움이 되길 바랍니다.

아니요 ...모든 Windows 플랫폼에서 DWORD는 32비트입니다.64비트 유형에는 LONGLONG 또는 LONG64가 사용됩니다.

간단한 dword는 32 비트 단어 단어입니다.

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

DWord는 더블워드이고 워드는 65535입니다.Double Word는 65535^2 = 4294836225 또는 ulong이 되며 크기 단어의 4바이트는 2바이트입니다.

그리고 이것은 하드 드라이브에 저장하거나 인터넷을 통해 전송하기 위한 2바이트입니다.

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

그러나 역사적으로 x86 "워드"는 32비트가 아닌 16비트입니다.따라서 역사적으로 x86을 대상으로 하는 Microsoft 라이브러리는 DWORD를 unsigned long으로 정의합니다."머신 포인터 크기".

그게 다 아이들이에요.나중에 참조하려면 다음을 참조하세요. 위키피디아.

긴 전화, dword32, dword64...당신이 원하는 것은 무엇이든, 바이트는 8 비트입니다. 단어는 2 바이트 (double word) dword (double word)는 2 단어 qword (quad word)입니다.

32비트 또는 64비트 시스템에서는 LONG 또는 INT와 같은 별칭이 다를 수 있지만 dword는 여전히 이중 단어입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top