1. 簡單示例,求二進制數中1的個數:
#include <stdio.h>
typedef struct {
unsigned char a:1;
unsigned char b:1;
unsigned char c:1;
unsigned char d:1;
unsigned char e:1;
unsigned char f:1;
unsigned char g:1;
unsigned char h:1;
} BYTE;
int main() {
unsigned char n = 0x3F;
BYTE *b = (BYTE*) &n;
int num = b->a + b->b + b->c + b->d
+ b->e + b->f + b->g + b->h;
printf("%d\n", num);
}
注:有些書上提到位段成員必須聲明為int、signed int 或unsigned int類型,但是在有些編譯器中,char和unsigned char類型也是可以的。