インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

組込み関数の認識と展開の無効化

コンパイラーは組込み関数を認識すると、インライン展開するか、ライブラリーにある高速な実装を仮定しリンクします。デフォルトでは、組込み関数のインライン展開が有効です。

一部のケースでは、この動作を無効にすることで生成されるオブジェクトやバイナリーのサイズが大幅に改善されます。

指定するオプション:

Linux* および macOS*: -fno-builtin
Windows*: /Oi-

メリット

実行ファイルに含まれるオブジェクトファイルとライブラリー・コードのサイズを減らすことができます。

デメリット

  • さまざまな最適化を妨げることがあります。遅い標準ライブラリー実装が使用されます。

  • インライン展開された組込み関数の代わりに使用する、ライブラリーからスタティックに呼び出されるコードのサイズが大きい場合、最終実行ファイルのサイズが増えることがあります。

注: