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

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

Patricia Arquette
リリース: 2024-10-29 10:25:02
オリジナル
655 人が閲覧しました

How Can I Compile C Code with Anonymous Structs or Unions?

匿名の構造体/共用体を使用した C コードのコンパイル

次に示すように、匿名の構造体または共用体を使用して C コードをコンパイルする方法について疑問が生じます。 C では共用体を使用した匿名フィールドを使用します。 C では、匿名共用体を含む名前付き構造体を使用して同様の構造体を作成しようとすると、コンパイル エラーが発生します。

エラー メッセージは、匿名共用体フィールドと構造体フィールドが構造体宣言内で宣言されていないことを示します。 C でこの機能を有効にするには、-fms-extensions コンパイラ フラグを使用する必要があります。

-fms-extensions を使用した改訂コード

<code class="c">#include <stdio.h>
#include <assert.h>

typedef struct {
    union {
        float x, y, z;
    } xyz;
} Vector3;

int main() {
    Vector3 v;
    assert(&v.xyz.x == &v.x);
    assert(&v.xyz.y == &v.y);
    assert(&v.xyz.z == &v.z);
    return 0;
}</code>
ログイン後にコピー

これにより、変更すると、コードは正常にコンパイルされ、アサーションが通過し、共用体メンバーと構造体フィールドのアドレスが等しいことが確認されます。

以上が匿名構造体または共用体を使用して C コードをコンパイルするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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