C言語で構造体を初期化するいくつかの方法

C言語で構造体を初期化するいくつかの方法

定義時に割り当てます

1
2
3
4
5
6
7
8
9
struct InitMember
{
    int first;
    double second;
    char* third;
    float four;
};

struct InitMember test = {-10,3.141590,"method one",0.25};

対応する順序を間違えないよう注意する必要があります。

定義後に値を一つずつ代入する

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
struct InitMember
{
    int first;
    double second;
    char* third;
    float four;
};

struct InitMember test;

test.first = -10;
test.second = 3.141590;
test.third = "method two";
test.four = 0.25;

割り当ては一つずつ決まっていくので、順番は関係ありません。

定義時のアウトオブオーダー代入 (C スタイル)

この方法は、第 1 の方法と第 2 の方法を組み合わせたものに似ています。初期化中に値を割り当てることも、順序を考慮しないこともできます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
struct InitMember
{
    int first;
    double second;
    char* third;
    float four;
};

struct InitMember test = {
    .second = 3.141590,
    .third = "method three",
    .first = -10,
    .four = 0.25
};

この方法はよく使われており、非常に良い方法です。

定義時の順序外の代入 (C++ スタイル)

この方法は、インターネット上で C++ スタイルと呼ばれる、前の方法に似ています。これはキーと値のペアの方法に似ており、順序も考慮されません。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
struct InitMember
{
    int first;
    double second;
    char* third;
    float four;
};

struct InitMember test = {
    second:3.141590,
    third:"method three",
    first:-10,
    four:0.25
};
记录并分享
Hugo で構築されています。
テーマ StackJimmy によって設計されています。