소연의_개발일지

 

LOWORD,HIWORD

32비트라는 운영체제 가정하에

 

WORD라는 건

unsigned short 이다. (typedef unsigned short WORD)

unsigned short 는 2바이트이며 0부터 65535까지의 값을 나타낼 수 있다.

 

#define LOWROD(I) ((WORD)(I))

#define HIWORD(I) ((WORD)(((DWORD)(I) >> 16 & 0FFFF))

 

LOWORD, HIWORD는 주로 DWORD (unsigned int_32) 를 두개로 나눌때(?) 사용합니다.

위에 보신대로 LOWORD는 워드형으로 형변환을 시킵니다.

즉.. 오른쪽 16자리의 값이 되겠지요 ..

 

HIWORD는16자리 쉬프트후 워드형으로 형변환 시키므로 왼쪽의 16자리 값이 됩니다.

 

?? 먼소리여

 

[정의] 32비트 운영체제에서는 WORD가 16비트 데이터형이고 DWORD가 32비트 데이터형이다.

[기능] 지정한 32비트 데이터에서 하위 16비트 데이터 값을 얻는데 사용하는 함수이다.

[예제]

DWORD data = 0x12345678;
 
WORD l_data = LOWORD(data);
// l_data에는 0x5678 값이 들어감.
  • [요구사항] : 헤더파일 #include "windef.h”

 

profile

소연의_개발일지

@ssoyxon

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!