我是C编码的新手,我在以下结构中遇到了“:”
struct __tag131
{ /* Bit Access */
unsigned char P0P6:1; /* P0P6 */
unsigned char P1P6:1; /* P1P6 */
unsigned char P2P6:1; /* P2P6 */
unsigned char P3P6:1; /* P3P6 */
unsigned char :2; /* Reserved Bits */
unsigned char TBP6:1; /* TBP6 */
unsigned char MKP6:1; /* MKP6 */
unsigned char :4; /* Reserved Bits */
unsigned char RFP6:1; /* RFP6 */
unsigned char :2; /* Reserved Bits */
unsigned char CTP6:1; /* CTP6 */
};
“:”有什么用?它甚至是一个运营商吗?我知道什么是unsigned char'type'但是unsigned char:2是什么?请解释一下。
答案 0 :(得分:2)
不,“:”是位域。您可以在以下网址了解更多信息:
答案 1 :(得分:0)
C中的位字段允许压缩形式的信息。冒号后面的数字描述了允许存储的位数。
1 bit => 0,1 (or -1,0 )
2 bits => 0,3 (or -2,1 )
3 bits => 0,7 (or -4,3 )
数据访问速度较慢,但占用的空间较少。