匿名の構造体と共用体はどこで使用できますか?CおよびC++で匿名の構造体および共用体を許可する標準はどれですか?
struct
{
int bar;
}; // anonymous struct
union
{
int bar;
}; // anonymous union
私たちは次の規格でそれを行うことができると思います。
組合 - C++ 98、C++ 03、C++ 11、C11
構造体 - C11
アムI右か
匿名の構造体と共用体はどこで使用できますか?CおよびC++で匿名の構造体および共用体を許可する標準はどれですか?
struct
{
int bar;
}; // anonymous struct
union
{
int bar;
}; // anonymous union
私たちは次の規格でそれを行うことができると思います。
組合 - C++ 98、C++ 03、C++ 11、C11
構造体 - C11
アムI右か
Cに関するステートメントは正しいです:匿名の構造体と共用体の標準化はかなり新しいです(C11)cfr. GCC man。
ご希望のコンパイラでは、現在サポートされている標準(GNU C99拡張など)の拡張機能としてこれらの機能を有効にできます。
その後、古い仕様をチェックすると、1998以降、C++で匿名の共用体がサポートされているようです。
匿名の構造体はC++では禁止されていますが、私は修正が見つかりませんでした。 Visual studio 2012の時点で、C++はこの機能をサポートしていないことが確認されています。
ありがとう! C++についてはどうですか? – FrozenHeart
私は答えを更新しました。 – ziu
gccはC99のGNU拡張版としても匿名ユニオンをサポートしています –
あなたが提供した 'struct'と' union'のスタイルは、別の 'struct' /' union'に置くだけです。これはあなたが話している文脈ですか? – cha0site
@ cha0siteええ、確かに – FrozenHeart