__attribute__((transparent_union)) 型属性

transparent_union 型属性を使用すると、transparent_union 型、つまり、__attribute__((transparent_union))__ で修飾された共用体データ型を指定できます。

透過ユニオン型を持つパラメータを使用して関数が定義されると、共用体の型の引数を使用した関数の呼び出しは、渡された引数の型を持つメンおよび渡された引数値に設定された値を持つ共用体オブジェクトを初期化する結果になります。

共用体データ型が __attribute__((transparent_union)) で修飾されると、透過ユニオンはその型のすべての関数パラメータに適用されます。

Note

この型属性は、ARM コンパイラでサポートされている GNU コンパイラの拡張機能です。

Note

個別関数パラメータは、対応する __attribute__((transparent_union)) 変数属性によって修飾される可能性もあります。

Show/hide

typedef union { int i; float f; } U __attribute__((transparent_union));
void foo(U u)
{
    static int s;
    s += u.i;    /* 'int' フィールドを使用 */
}
void caller(void)
{
    foo(1);        /* u.i は 1 に設定される */
    foo(1.0f);     /* u.f は 1.0f に設定される */
}

Show/hideモード

GNU モードでのみサポートされています。

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0491EJ
Non-ConfidentialID081711