C および C での自動構造体と配列の部分初期化
部分初期化
C や C のような構造化プログラミング言語、初期化子を使用してデータ メンバーに値を割り当てることができます。オブジェクト宣言時。ただし、メンバーの数より少ない初期化子が提供される、以下のコード スニペットのケース 1 とは異なり、標準では 2 種類の初期化のみが定義されています。
struct someStruct { int a; int b; int c; }; // Partial Initialization struct someStruct s = {123,};
// Complete Initialization struct someStruct s = {123, 456, 789}; // No Initialization struct someStruct s;
部分初期化のルール配列と構造体の
実際には、状況を説明するために「部分初期化」という用語がよく使用されます。上記のケース 1 と同様に、初期化子はメンバーのサブセットのみに提供されます。 C と C 標準はどちらも部分初期化について明示的には言及していませんが、完全な初期化と初期化なしの両方の動作を定義しており、次のルールが部分初期化にも適用されます。
互換性の確保
さまざまな互換性を確保するためgcc/g を含むコンパイラでは、構造体と配列を初期化するときは、部分的な初期化を避け、標準ルールに従うことをお勧めします。予期しない動作につながる可能性があるため。
以上がC および C では構造体と配列の部分初期化はどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。