配列[100] = {0} の背後にある魔法を理解する;初期化
C/C コード スニペット array[100] = {0} に遭遇したとき、開発者はコンパイラがどのようにしてすべての配列要素を簡単にゼロに初期化するのか疑問に思うかもしれません。
コンパイラの初期化メカニズム
この動作は難解な魔法ではありませんが、むしろ、C および C 仕様の明確に定義された側面です。
C では
C 仕様のセクション 6.7.8.21 に従って、配列内の初期化されていない要素は次のように初期化されます:
これは、入れ子になった配列と構造体に再帰的に適用されます。
C 内
のセクション 8.5.1.7 C 仕様では、配列内の初期化されていない要素は集合的に初期化されると規定されています。集約初期化では、要素の値がデフォルト値 (文字の場合はゼロ) に初期化されます。
空の初期化子リスト
C では、空の初期化子リスト配列を使用することもできます。 [100] = {};すべての配列要素の集約初期化をトリガーします。
コンパイラ アセンブリ出力
コンパイラによって生成される特定のアセンブリ コードは、特定の実装に基づいて異なる場合があります。ただし、通常、配列の一部を初期化し、初期化された値を残りの要素にコピーする必要があります。
以上がC/C で `array[100] = {0};` は配列全体をゼロに初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。