#pragma priority ディレクティブは、静的オブジェクトが初期化される順序を指定します。
>>-#--pragma--priority--(--n--)--------------------------------><
n の値は、101 から 65535 の範囲の整数リテラルでなければなりません。デフォルト値は 65535 です。A の低い値は高い優先順位を示しています。高い値は低い優先順位を示しています。
優先順位の値は、明示的値が変数属性 init_priority によって提供されている場合や、別の #pragma priority ディレクティブを検出した場合を除き、#pragma priority ディレクティブに続くすべてのグローバルおよび静的オブジェクトに適用されます。
同じ優先順位の値を持つオブジェクトは、宣言順に構成されます。 複数のファイル間のオブジェクトの構成順序を指定するには、#pragma priority を使用します。ただし、ソース・ファイルから実行可能ファイルまたは共用ライブラリー・ターゲットを作成している場合、コンパイラーは依存関係の順序付けをチェックし、 それにより #pragma priority が上書きされる可能性があります。
例えば、オブジェクト A のコピーがパラメーターとしてオブジェクト B のコンストラクターに渡されると、コンパイラーは上から下の順序、または #pragma priority の順序付けに違反することになっても、A が最初に構成されるように調整します。 このことは、コンパイラーが許可するオーダーレス・プログラミングに不可欠です。 ターゲットが .obj/.lib の場合、依存性を検出するための情報が十分ではない可能性があるため、この処理は行われません。
#pragma priority(1001)
関連情報