비트 필드를 통해 개발자는 특정 크기의 구조체 또는 클래스 멤버를 선언할 수 있다.
그러나 비트 필드의 크기는 유형에 의해서도 제한된다. 지정된 크기가 유형의 크기보다 클 경우 컴파일러는 경고 또는 에러를 방출한다.error: width of '~~' exceeds its type
비준수 코드 예
typedef struct {
unsigned int b : 55; // 지정된 크기가 unsigned int 크기보다 크다.
} A;
솔루션
typedef struct {
unsigned int b : 32;
} A;
또는
typedef struct {
unsigned long long int b : 55;
} A;
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | C Programming FAQs(한글번역 pdf문서) | makersweb | 2014.03.18 | 27011 |
» | 비트 필드의 크기는 해당 유형의 크기를 초과할 수 없다. | makersweb | 2023.04.25 | 463 |
9 | flexible array member 에 대해서 | makersweb | 2020.02.20 | 2041 |
8 | 배열과 포인터, 등가포인터 예제 | makersweb | 2019.01.16 | 1208 |
7 | 함수포인터와 typedef로의 선언 | makersweb | 2018.02.03 | 1255 |
6 | 예제소스를 통해 리틀엔디안(Little endian)과 빅엔디안(Big endian)의 차이점 알아보기 | pjk | 2014.05.24 | 8245 |
5 | switch와 if 중 어느 것이 더 빠른가 | makersweb | 2017.01.31 | 2934 |
4 | volatile이 정확히 어떤 의미를 가지는 건가요? | pjk | 2014.09.30 | 4717 |
3 | unsigned형의 모든 상수에는 접미사 ‘U’를 사용하여야 한다. | pjk | 2014.05.24 | 37603 |
2 | void형 포인터 | pjk | 2014.05.24 | 5229 |
1 | C언어 강좌-배열과 포인터 | makersweb | 2014.03.10 | 4727 |