追加のスタートアップ考慮事項
C++ ではオブジェクトの構築と破棄がユーザー コードの実行を含めることができます。したがって初期化がエントリに 主要 の前に発生しデストラクターは 主要 の終了後に起動されるかを理解することが重要です。(オブジェクトの構築と破棄する方法の詳細についてはコンストラクター と デストラクター を参照してください)。
次の初期化は 主要 の開始前に発生します :
ゼロへの静的データの既定の初期化します。明示的な初期化子を除いたすべての静的データはランタイム初期化など他のコードを実行する前にゼロが設定されます。静的データ メンバーは明示的に定義する必要があります。
翻訳単位のグローバルな静的オブジェクトを初期化します。これは 主要 または前に関数を使用またはオブジェクトの翻訳単位のオブジェクトの開始前に発生することがあります。
Microsoft 固有の仕様 →
Microsoft C++ では 主要 へのグローバルな静的オブジェクトはエントリの前に初期化されます。
終了 Microsoft 固有の仕様→
相互に単位不適切な動作が発生する可能性があります。グローバルな静的オブジェクトでは依存関係によっては別のに移動します。