2017-09-21 28 views
0

私は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型であるか知っていますが、unsigned char型は何ですか?説明してください。

+1

Googleのビットフィールド。 –

答えて

0

Cのビットフィールドは、情報の圧縮形式を可能にする:あなたはより多くのでそれらについて読むことができます。コロンの後の数字は、格納が許可されるビット数を表します。

1 bit => 0,1 (or -1,0) 
2 bits => 0,3 (or -2,1) 
3 bits => 0,7 (or -4,3) 

データのアクセスは遅くなりますが、使用するスペースは少なくなります。

+0

署名されたデータ型の値が括弧で囲まれていますか?その場合、1ビットに '(または-1,0)'がありません。 – mch

+0

@mchシャープな目。 – chux

+0

Hmm - 私は彼らが1ビットの署名を許可しないと推測していた) – mksteve