最適化の範囲の制限

最適化の範囲を絞ったり、最適化を禁止したりする場合は、以下の各オプションを使います。

オプション 説明
-O0 最適化を無効にします。-fp オプションを有効にします。
-mp 浮動小数点演算の精度にいくらかの正と負の影響をもたらす最適化を制限し、宣言された精度のレベルを保ち浮動小数点演算が ANSI および IEEE* 標準に準拠するようにします。
-g コマンドラインで -g とともに -O1-O2、または -O3 が明示的に指定されていなければ、デフォルトの -O2 オプションをオフにして -O0 をデフォルトにし ます。
-nolib_inline 組込み関数のインライン展開を無効にします。

#pragma optimize を使用して、特定の関数のすべての最適化をオフにすることができます。次の例では、関数 foo() ですべての最適化がオフになります:

#pragma optimize("", off)

foo(){

...

}

#pragma optimize の有効な 2 番目の引数は "on" または "off" です。引数 "on" を使用すると、foo() 関数は、残りのプログラムと同じように最適化してコンパイルされます。コンパイラは、最初の引数の値を無視します。