打印位域出现的奇怪问题
#include <stdio.h>#include <string.h>struct abcd_st { unsigned int a : 11; unsigned int b : 2; unsigned int c : 2; unsigned int d : 1;};int main(int argc,char **argv) { struct abcd_st abcd; unsigned char *ptr = (unsigned char *)&abcd; memset(&abcd,0xFF,1); memset(((char *)&abcd) + 1,0xFB,1); printf("abcd: %X %X\n",ptr[0],ptr[1]); printf("a:%X,b:%X,c:%X,d:%X\n", abcd.a, abcd.b, abcd.c, abcd.d); return 0;}struct abcd_st { unsigned int a : 11; // unsigned int b : 2; // unsigned int c : 2; //小弟不明白,谁能给解释一下, 为什么用冒号,表示什么意思 unsigned int d : 1; //??}; memset(&abcd,0xFF,1);//这句怎么解释 memset(((char *)&abcd) + 1,0xFB,1); //