드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
게시물ID : computer_46666짧은주소 복사하기
작성자 : 밤나무꽃향기★
추천 : 0
조회수 : 1923회
댓글수 : 6개
등록시간 : 2012/05/11 18:12:58
#define Setbit(address, bit) (address |= (1 << bit))
#define Clrbit(address, bit) (address &= ((1 << bit) ^ 0xFF))
#define Chkbit(address, bit) (address & (1 << bit))
위와 같은 매크로 함수를 사용하는데요
셋빗 함수를 사용할 때
8비트 범위까지는 되는데 8비트를 넘어서면 안되네요.
unsigned char 변수; // 1바이트
Setbit(변수, 0x01)
위는 변수의 첫번째 비트를 셋 하는건데 8비트 안 이므로 되요.
unsigned int 변수; // 2바이트
Setbit(변수, 0x1000)
위와 같이 16비트 변수의 8비트 이상의 비트를 셋하려고 하면
"shift count is too large" 라는 컴파일 워닝이 떠요.
물론 제대로 작동이 안되고요.
해법이 있을까요 프로그래밍 고수분들 도와주세요.
댓글 분란 또는 분쟁 때문에
전체 댓글이 블라인드 처리되었습니다.
새로운 댓글이 없습니다.