私はバイト、ニブルとビット操作を簡素化するために、次の組合を使用します。C++匿名の構造体
union Byte
{
struct {
unsigned int bit_0: 1;
unsigned int bit_1: 1;
unsigned int bit_2: 1;
unsigned int bit_3: 1;
unsigned int bit_4: 1;
unsigned int bit_5: 1;
unsigned int bit_6: 1;
unsigned int bit_7: 1;
};
struct {
unsigned int nibble_0: 4;
unsigned int nibble_1: 4;
};
unsigned char byte;
};
それは素敵な作品が、それはまた、この警告を生成:
警告:ISO C++が匿名を禁止します構造体[-pedantic]
しかし、...私のg ++出力からこの警告をどのように得るには?この問題のないこの組合のようなものを書く可能性はありますか?
なぜ単にあなたの構造体に名前を付けますか? –
あなたは、有効なC++の領域内でやろうとしていることをすることはできません。それは動作するかもしれませんが、未定義の動作になります。 –
名前を付けることができます。たとえば、構造体のニブルを作成し、それを共用体のフィールドにします。しかし、私はByte.nibbles.nibble_0にアクセスしなければなりません。使用するのはあまりいいことではありません;)。 – Dejwi