[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.22 共用体型へのキャスト

共用体型へのキャストは、指定された型が共用体型であることを除けば 他のキャストと同じである。型を指定するには、union tag か typedef 名で可能である。 だが、共用体へのキャストは実際にはコンストラクタであり、キャストでは ない。このため、通常のキャストのような左辺値は生じない。(See section コンストラクタ式.)

共用体型にキャスト可能な型は、共用体のメンバの型である。 すなわち、以下のような共用体と変数が与えられていると、

 
union foo { int i; double d; };
int x;
double y;

xy はどちらも union foo 型にキャスト可能である。

キャストを共用体型変数への代入の右辺として使うのは、共用体のメンバに 格納するのと同じことである。

 
union foo u;
…
u = (union foo) x  ≡  u.i = x
u = (union foo) y  ≡  u.d = y

また、共用体のキャストを関数の引数として使うこともできる。

 
void hack (union foo);
…
hack ((union foo) x);

This document was generated using texi2html 1.78.