定義時に割り当てます
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
};
|