C의 비트 필드: :1, :7, :16 및 :32 이해
C에서 프로그래머는 비트 필드를 사용하여 다음을 수행합니다. 지정된 비트 수를 차지하는 멤버로 데이터 구조를 만듭니다. 이 개념은 종종 콜론(:)과 숫자 값을 사용하여 표현됩니다.
다음 예를 고려하세요.
unsigned char a : 1; unsigned char b : 7;
이 코드에서 콜론과 다음 숫자(:1 및 :7) 각 변수 a와 b의 비트 크기를 나타냅니다. 즉, a는 단일 비트이고 b는 7비트를 차지합니다.
비트 필드는 일반적으로 각 멤버의 비트 크기를 제한하여 구조 크기를 최소화하는 묶음 데이터 구조를 만드는 데 사용됩니다. 예를 들어, 다음 tOneAndSevenBits 구조에서:
typedef struct { unsigned char a : 1; unsigned char b : 7; } tOneAndSevenBits;
구조는 8비트를 차지하며, 1비트는 a에 할당되고 7비트는 b에 할당됩니다.
비트 필드를 사용하여 액세스할 수도 있습니다. 압축된 값. 다음 예를 고려하십시오.
typedef struct { unsigned char leftFour : 4; unsigned char rightFour : 4; } tTwoNybbles;
이 구조는 단일 8비트 바이트에 압축된 두 개의 4비트 니블(반바이트)이 있는 데이터 유형을 생성합니다.
C 11 표준 비트 필드를 더 자세히 정의합니다.
"선택적 속성 지정자는 선언되는 엔터티에 속합니다. 비트 필드 속성은 다음과 같습니다. 클래스 멤버 유형의 일부가 아닙니다. 상수 표현식은 0보다 크거나 같은 값을 갖는 정수 상수 표현식이어야 합니다."
이 사양을 사용하면 클래스 객체 내에서 비트 필드를 유연하게 할당할 수 있습니다. , 구현에 따라 비트 필드의 정렬 및 패킹이 정의됩니다.
위 내용은 C의 비트 필드란 무엇이며 :1, :7, :16 및 :32의 크기를 어떻게 지정합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!