ホームページ >バックエンド開発 >C++ >GCC を使用して C の匿名構造体と共用体メンバーに配列としてアクセスするにはどうすればよいですか?

GCC を使用して C の匿名構造体と共用体メンバーに配列としてアクセスするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-03 03:22:03626ブラウズ

How to Access Anonymous Struct and Union Members as Arrays in C with GCC?

匿名の構造体と共用体を使用した 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。