한국어
C/C++
 

비트 필드를 통해 개발자는 특정 크기의 구조체 또는 클래스 멤버를 선언할 수 있다.

그러나 비트 필드의 크기는 유형에 의해서도 제한된다. 지정된 크기가 유형의 크기보다 클 경우 컴파일러는 경고 또는 에러를 방출한다.
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;