비트필드는 일정 비트 수를 차지하도록 변수를 지정할 수 있다. 이것은 어떤 하드웨어 장치에 들어 있는 레지스터에 대응하는 데이터 구조를 만들 때 매우 편리하다. 필드형은 정수형이나 열거자여야 한다. 사용할 비트 수는 콜론을 찍고 그 뒤에 적는다. 이름이 없는 필드를 사용하여 간격을 줄 수 있다.
struct torgle_register
{
unsigned int SN : 4; // SN 값(4비트)
unsigned int : 4; // 사용하지 않음(4비트)
bool goodIn : 1; // 유효한 입력(1비트)
bool godTorgle : 1; // 토글에 성공(1비트)
}
보통의 방식으로 필드들을 초기화할 수 있다. 구조체 표기 방법을 그대로 사용하여 비트 필드에 접근한다.
torgle_register tr = { 14, true, false };
...
if(tr.goodIn)
...
비트 필드는 저수준 프로그래밍에서 주로 사용됨.