[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
共用体型へのキャストは、指定された型が共用体型であることを除けば
他のキャストと同じである。型を指定するには、union tag
か
typedef 名で可能である。
だが、共用体へのキャストは実際にはコンストラクタであり、キャストでは
ない。このため、通常のキャストのような左辺値は生じない。(See section コンストラクタ式.)
共用体型にキャスト可能な型は、共用体のメンバの型である。 すなわち、以下のような共用体と変数が与えられていると、
union foo { int i; double d; }; int x; double y; |
x
と y
はどちらも 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.