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”
'개발공부 > C++' 카테고리의 다른 글
[c++] bool과 BOOL의 차이 (0) | 2023.12.13 |
---|---|
[오류] LINK2019 확인할 수 없는 외부 참조, 함수에서 참주할 수 없는 외부 기호 (0) | 2023.12.06 |
[C++]Cstring double로 변경 (0) | 2023.12.04 |
[MFC] 버튼 활성화 비활성화 (0) | 2023.11.21 |
[C++] 쓰레드 생성, 이미지에서 픽셀 갯수 세기 (0) | 2023.09.20 |