게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
C언어 비트셋 매크로 함수 질문좀 할께요
게시물ID : computer_46666짧은주소 복사하기
작성자 : 밤나무꽃향기
추천 : 0
조회수 : 1907회
댓글수 : 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" 라는 컴파일 워닝이 떠요.
물론 제대로 작동이 안되고요.

해법이 있을까요 프로그래밍 고수분들 도와주세요.
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호