私はいくつかのコードに取り組んでいて、次のようなものに出くわしました:
class Foo
{
private:
union {
byte bar;
struct {
byte baz1;
byte baz2;
};
};
};
現在、VS 2010(純粋なアンマネージド)で警告レベル4でコンパイルしています。もちろん、VSは、名前のない構造体/共用体が非標準の拡張体であると文句を言います(警告C4201)。その警告を修正したいと思います。
誰かが上記を好む理由はありますか?
class Foo
{
private:
byte bar;
byte baz1;
byte baz2;
};
または、前者を後者に変更すると壊れてしまう理由はありますか?