プログラム内の関数を並べ替えるコンパイラ/リンカーの最適化を無効にする方法は? たとえば、次のような 3 つの機能があるとします。
void A (){};
void B (){};
void C (){};
ビルド後、これらの関数の順序を変更して、B がメモリ内で最初に、C が 2 番目、A が 3 番目になるようにすることができます。
GCC には、トリックを実行するオプション「no-toplevel-reorder」があります。
-fno-toplevel-reorder
トップレベルの関数、変数、および asm ステートメントを並べ替えないでください。入力ファイルに表示されるのと同じ順序で出力します。このオプションを使用すると、参照されていない静的変数は削除されません。このオプションは、特定の順序に依存する既存のコードをサポートすることを目的としています。新しいコードでは、属性を使用することをお勧めします。
MS C++ の類似物はありますか?