10.25 __declspec(noinline)

__declspec(noinline) を使用すると、その関数の呼び出し時に、その関数をインライン展開しないことができます。

__declspec(noinline) を定数データに適用して、コンパイラによる最適化を抑制することもできます。オブジェクト内の値の配置には影響しません。この機能は、パッチ可能な定数(後で別の値に適用されるデータ)に使用することができます。定数値が必須であるようなコンテキストでこのような定数を使用するのは誤った用法です(配列の次元など)。

この __declspec 属性には、同等の関数属性 __attribute__((noinline)) があります。

/* Prevent y being used for optimization */
__declspec(noinline) const int y = 5;
/* Suppress inlining of foo() wherever foo() is called */
__declspec(noinline) int foo(void);
関連する参考文書
10.40 __attribute__((noinline)) 関数属性
10.67 __attribute__((noinline)) 定数変数属性
10.91 #pragma inline、#pragma no_inline
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.