6

Ben Voigtはここで次のように指摘しています。

ゼロ初期化は、静的初期化のステップの 1 つです。しかし、ゼロの初期化は値の初期化でも実行されるため、後者 (タグ) をやみくもに置き換えることはできません。ただし、タグは静的初期化と値初期化の両方に既に存在し、それらはより関連性があるため、C++ のコンテキストでは (タグという名前の) ゼロ初期化は必要ありません。

「Static-Initializing」「Value-Initializing 」ではなく「Zero-Initialize」が理にかなっている場合、または「Zero-Initialization」が実際に発生することは決してない場合があり、より具体的に使用する必要があると思いました「静的初期化」または「値初期化」のような用語?

公平を期すために、これらのトピックに関する私の経験のほとんどは、この質問への回答を研究することから得られているため、Ben Voigt が正しいと確信しています。誰かに理由を説明してもらいたいだけです。

4

1 に答える 1

4

ゼロ初期化は単独で発生する可能性があります。配列よりも短い文字列リテラルを使用して文字配列を初期化すると、残りの文字はゼロで初期化されます。ただし、それ以外の場合はすべて、値の初期化にゼロ初期化が発生するか、静的またはスレッド ローカル ストレージ期間でオブジェクトを初期化する静的初期化ステップとして発生します (これは、単独で、または動的初期化の準備として発生する可能性があります)

したがって、文字型のゼロ表現について尋ねていない限り (そして、そのトピックに多くの質問があるとは思えません)、他のタグのまたは初期化のいずれかが適用され、あまりわかりませんタグ クォータを使い切ってを適用する価値もあります。

于 2016-06-09T17:34:08.843 に答える