Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[838] 이런 경우에 굳이 비트필드를 쓸 필요가 있을까요?
김백일 [cedar] 1583 읽음    2002-07-09 17:17
비트필드는 각 필드에 특정한 의미가 있을 때만 쓰고요,
그냥 pin0, pin1, pin2, ... 로 쓰실 거라면, 그냥 비트 연산만으로 다 됩니다.

#define bit0    0x00
#define bit1    0x01
#define bit2    0x02
#define bit3    0x04
#define bit4    0x08
#define bit5    0x10
#define bit6    0x20
#define bit7    0x40
#define bit8    0x80
... // 더 필요하시면 더 쓰세요.
#define maskupper 0x00FF
#define masklower 0xFF00

로 정의하신 후,
비트 연산자를 써서 사용하시면 될겁니다.
예를 들어,

short flags = 10000;

if (flags & bit1) {...} // bit1이 set?

flags |= bit2;          // bit2를 set

flags &= ~bit3;         // bit3를 clear

flags &= maskupper      // 상위 8비트를 제거하고 하위 8비트만 남김

+ -

관련 글 리스트
835 비트필드(16비트중 하위 8비트)를 unsigned char형에 담고싶습니다. 김인구.구야 1662 2002/07/09
838     이런 경우에 굳이 비트필드를 쓸 필요가 있을까요? 김백일 1583 2002/07/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.