ホームページ > バックエンド開発 > C++ > 匿名の構造体と共用体を使用して C コードをコンパイルするにはどうすればよいですか?

匿名の構造体と共用体を使用して C コードをコンパイルするにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-02 09:46:02
オリジナル
844 人が閲覧しました

How can I compile C code using anonymous structs and unions?

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート