匿名の構造体と共用体を使用した C コードのコンパイル
匿名の構造体と共用体を使用して C コードをコンパイルするには、GNU C の名前なしフィールド拡張機能を有効にすることを検討してください。 -fms-extensions コンパイラ フラグ経由。
実装:
<code class="c">typedef struct { union { struct { float x, y, z; }; float xyz[3]; }; } Vector3;</code>
コンパイル:
<code class="sh">gcc -fms-extensions my_code.c</code>
使用法:
<code class="c">Vector3 v; assert(&v.xyz[0] == &v.x); assert(&v.xyz[1] == &v.y); assert(&v.xyz[2] == &v.z);</code>
説明:
-fms-extensions フラグは、構造体および共用体での名前のないフィールドの使用を有効にし、匿名の構造体を許可します。元の質問で説明したように使用します。このフラグを使用すると、コンパイラは共用体内の匿名構造体を認識し、構造体の要素を配列 xyz の要素に適切に関連付けます。
以上が匿名の構造体と共用体を使用して C コードをコンパイルするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。