ライブラリー関数のインライン展開

デフォルトでは、標準ライブラリー関数と数値演算ライブラリー関数のいくつかは、関数の呼び出し時点で、コンパイラーによって自動的にインライン展開されます。通常、この処理によって計算速度が速くなります。しかし、インライン展開されたライブラリー関数では、インライン展開時に errno 変数は設定されません。

したがって、errno 変数を設定するかしないかによって動作が異なるコードに対しては、-nolib-inline (Linux*) または /Oi- (Windows*) オプションを使用しなければなりません。

関数の名前がコンパイラーから提供されるライブラリー関数と同じ名前の場合、この関数が呼び出されると、コンパイラーはライブラリー関数への呼び出しであるとみなして、ライブラリー関数のインライン化バージョンと置換します。このため、既知のライブラリー・ルーチンのいずれかと同じ名前の関数をプログラムで定義している場合、ユーザーから提供される関数を使用するには、-nolib-inline (Linux) または /Oi- (Windows) オプションを使用する必要があります。

このオプションは、すべての組み込み関数のインライン化を無効にします。