関数のインライン展開(#pragma inline/#pragma noinline)
|
インライン関数であることをコンパイラに示唆します。
[機能]
- | #pragma inlineは,インライン展開する関数を宣言します。 |
- | #pragma noinlineは,-Oinline_levelオプション使用時に特定関数のインライン展開を抑止する関数を宣言します。 |
- | 同一翻訳単位内で,同じ関数に対して#pragma inlineと#pragma noinlineを同時に指定した場合はエラーとなります。 |
- | #pragma inline指令は,関数定義と同一翻訳単位内で,かつ関数定義より前に記述しなければなりません。 |
[方法]
- | 対象関数より前で#pragma inline/#pragma noinline宣言を行います。 |
#pragma inline [(]関数名 [,...][)]
#pragma noinline [(]関数名 [,...][)]
|
[使用例]
extern int gi;
#pragma inline i_func
static int i_func(int i)
{
return ++i;
}
void func(int j)
{
gi = i_func(j);
}
|