API- 비트 or 연산자 사용

사용자가 원하는 작업을 하기 위해 스타일을 적용할때 flag값을 이용하는데
이때 비트의 개념을 이용한다.

비트필드와 비슷한 개념이므로 비트필드에 대해선 예전글을 참조해주세용용 ㅎㅎㅎ

[프로그래밍/C언어] - 비트필드(비트 구조체) 

API함수들은 작업에 대한 세부 정보(옵션)을 인수로 전달받는다.
이 전달할 옵션이 여러개 있을경우 인수만큼 전달하는것은 상당히 비효율적이므로 비트를 이용하는 것이다.
즉, 하나의 인수에 복수 개수의 옵션을 묶어 전달하는것이다. 

여러개의 옵션을 비트(or) 연산자로 묶어 하나의 정수값만 전달하고,
함수는 인수의 개별 비트를 테스트한 후 어떤 옵션이 선택되었는지 알 수 있는것이다. 

 
ex)
 

#define DT_TOP              0x00000000
#define DT_LEFT             0x00000000
#define DT_CENTER           0x00000001
#define DT_RIGHT            0x00000002
#define DT_VCENTER          0x00000004
#define DT_BOTTOM           0x00000008
#define DT_WORDBREAK        0x00000010
#define DT_SINGLELINE       0x00000020
#define DT_EXPANDTABS       0x00000040
#define DT_TABSTOP          0x00000080
#define DT_NOCLIP           0x00000100
#define DT_EXTERNALLEADING  0x00000200
#define DT_CALCRECT         0x00000400
#define DT_NOPREFIX         0x00000800 
#define DT_INTERNAL 0x00001000



그림 출저: www.winapi.co.kr

이 글을 공유하기

댓글

Designed by JB FACTORY