【C言語】共用体を初期化する方法を解説

目次から探す

共用体の初期化方法

共用体の初期化方法には、以下の2つの方法があります。

1. メンバーの初期化

共用体のメンバーを個別に初期化する方法です。

各メンバーに対して、適切な値を代入することで初期化を行います。

2. 全体の初期化

共用体全体を一度に初期化する方法です。

共用体の宣言時に、初期化する値を指定することで初期化を行います。

メンバーの初期化

メンバーの初期化では、各メンバーに対して個別に初期値を代入します。

以下に例を示します。

#include <stdio.h>
union MyUnion {
    int num;
    float f;
    char str[10];
};
int main() {
    union MyUnion u;
    
    u.num = 10;
    printf("num: %d\n", u.num);
    
    u.f = 3.14;
    printf("f: %f\n", u.f);
    
    strcpy(u.str, "Hello");
    printf("str: %s\n", u.str);
    
    return 0;
}

上記の例では、共用体MyUnionのメンバーであるnumfstrを個別に初期化しています。

numには整数値10を代入し、fには浮動小数点数3.14を代入し、strには文字列Helloを代入しています。

それぞれのメンバーにアクセスする際には、共用体の型に応じたメンバーを使用します。

全体の初期化

全体の初期化では、共用体全体を一度に初期化します。

以下に例を示します。

#include <stdio.h>
union MyUnion {
    int num;
    float f;
    char str[10];
};
int main() {
    union MyUnion u = { .num = 10 };
    
    printf("num: %d\n", u.num);
    
    return 0;
}

上記の例では、共用体MyUnionの宣言時に初期化する値を指定しています。

numには整数値10を指定しています。

このように、共用体全体を一度に初期化する場合は、中括弧{}内に初期化する値を指定します。

目次から探す