6

私はC11ドラフトを調べていましたが、

タグのない構造体型の名前のないメンバーは、匿名構造体と呼ばれます。タグのない共用体型の名前のないメンバーは、無名共用体と呼ばれます。無名の構造体または共用体のメンバーは、それを含む構造体または共用体のメンバーと見なされます。

だから私は次のテストケースを構築しました

// struct type with no tag
typedef struct {
  unsigned char a;
  unsigned char b;
  // ... Some other members ...
  unsigned char w;
} AToW;

union
{
  AToW; // <- unnamed member
  unsigned char bytes[sizeof(AToW)];
} myUnion;

Clang と GCC はどちらも、名前のないメンバーについて不平を言い、宣言は効果がないと言っています。私は何か間違ったことをしましたか、それとも彼らは単にその機能をまだサポートしていませんか?

4

1 に答える 1