web-dev-qa-db-ja.com

Cで指定された初期化子とは何ですか?

私はこれが基本的な質問かもしれないことを知っています。

Cで指定された初期化子とは何か、変数を1で初期化することの意味を理解する必要がある割り当てがあります。私はこの用語に精通しておらず、決定的な定義を見つけることができませんでした。何is Cで指定された初期化子ですか?

11
user7349461

指定されたイニシャライザーには、次の2つのフレーバーがあります。

1)配列内の特定の要素を初期化する簡単な方法を提供します。

int foo[10] = { [3] = 1, [5] = 2 };

1に設定されるインデックス3と2に設定されるインデックス5を除いて、すべての要素をfooに0に設定します。

2)structメンバーを明示的に初期化する方法を提供します。たとえば、

struct Foo { int a, b; };

あなたは書ける

struct Foo foo { .a = 1, .b = 2 };

この場合、明示的に初期化されていないメンバーは、インスタンスの期間がstaticであるかのように初期化されることに注意してください。


13
Bathsheba