3.7.4. union 类型转换

union 类型的转换类似于其他类型转换,只不过指定的类型是 union 类型。 可以使用 union 标签或 typedef 名称指定类型。

模式

仅在 C90 和 C99 的 GNU 模式下支持。

示例


typedef union

{

    double d;

    int i;

} foo_t;



int Cast_to_Union_0(int a, double b)

{

    

    foo_t u;

    if (a>100)

        u = (foo_t) a ; // automatically equivalent to u.i=a;

    else

        u = (foo_t) b ; // automatically equivalent to u.d=b;

    return u.i;    

}

Copyright © 2007 ARM Limited. All rights reserved. ARM DUI 0348AC
Non-Confidential