匿名の構造体/共用体を使用した C コードのコンパイル
匿名の構造体と共用体により、個別の構造体/共用体を宣言することなく柔軟なデータ構造が可能になりますタイプ。 C では、入れ子になった構造体と共用体を使用して匿名の構造体/共用体を作成できます。ただし、C はこの機能を直接サポートしていません。
GCC を使用して C で同様の機能を実現するには、-fms-extensions フラグを使用できます。このフラグにより、匿名構造体/共用体のサポートを含む Microsoft スタイルの拡張機能が有効になります。
たとえば、次のコードを考えてみましょう。
<code class="c">typedef struct { union { struct { float x, y, z; }; float xyz[3]; }; } Vector3;</code>
-fms- を追加した場合extensions フラグを使用すると、コードは次のコマンドで正常にコンパイルされます:
gcc -fms-extensions -c <source_file>.c
この拡張機能を使用すると、次のコードのように、配列メンバーを通じて匿名構造体のメンバーにアクセスできます:
<code class="c">Vector3 v; assert(&v.xyz[0] == &v.x); assert(&v.xyz[1] == &v.y); assert(&v.xyz[2] == &v.z);</code>
以上がGCC を使用して C で匿名構造体/共用体をコンパイルするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。