共用体の例

次の例では、共用体データ型 (名前なし) と共用体変数 (名前 length 付き) を定義します。 length のメンバーは、long intfloat、または double のいずれでもかまいません。

union {
        float meters;
        double centimeters;
        long inches;
      } length;

次の例では、共用体型 data を、1 つのメンバーを含むものとして定義します。 メンバーには、charctrwhole、または real という名前が付けられます。 2 番目のステートメントでは、2 つの data 型変数、inputoutput を定義します。

union data {
             char charctr;
             int whole;
             float real;
           };
union data input, output;

次のステートメントでは、1 つの文字を input に代入します。

input.charctr = 'h';

次のステートメントでは、浮動小数点数をメンバー output に代入します。

output.real = 9.2;

次の例では、records という名前の構造体の配列を定義します。 records の各エレメントには、整数 id_num、整数 type_of_input、 および union 変数である input の 3 つのメンバーが含まれます。 input には、前の例で定義された union データ型があります。

struct {
         int id_num;
         int type_of_input;
         union data input;
       } records[10];

次のステートメントでは、文字を、records の 1 番目のエレメントの 構造体メンバー input に代入します。

records[0].input.charctr = 'g';

関連参照

IBM Copyright 2003