匿名の構造体と共用体を使用した C コードのコンパイル
C で匿名の構造体または共用体を使用する場合、構文は簡単で、メンバーは配列のようなものです。ただし、GCC を使用してこの機能を C で複製しようとすると、コンパイル エラーが発生する可能性があります。
C では、匿名の構造体または共用体を定義するには、親の構造体または共用体内でそれを宣言する必要があります。ただし、デフォルトでは、GCC は匿名メンバーへの配列としてのアクセスをサポートしていません。
望ましい動作を有効にするには、-fms-extensions コンパイラ フラグを使用する必要があります。このフラグは、匿名の構造体および共用体メンバーに配列としてアクセスする機能など、Microsoft Visual C 互換性拡張機能を有効にします。
-fms-extensions フラグを有効にすると、質問で指定されたコード スニペットを C で使用できます。 GCC に準拠しており、次のアサーションが当てはまります:
assert(&v.xyz[0] == &v.x); assert(&v.xyz[1] == &v.y); assert(&v.xyz[2] == &v.z);
以上がGCC を使用して C の匿名構造体と共用体メンバーに配列としてアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。