カスタマーサポートセンター

FAQ~よくある質問~ | FAQマスタ詳細表示

FAQ詳細情報

ID 10810256
FAQカテゴリ(大) コンパイラ
最終更新日 2017-10-30

質問内容

#pragma inline の説明がわかりにくいのですが

回答内容

#pragma inlineは関数を呼び出し側で展開する(インライン化)ことを促す機能を持ちます。

構文は
#pragma inline
または
#pragma inline=forced

になります。つまり、次のようにコーディングします。

#pragma inline

void hogehoge(void) { … }


#pragma inline=forced

void hogehoge(void) { … }

●コンパイラは、独自の判断でインライン化を試みますが、#pragma inlineはコンパイラに対してインライン化の基準を下げることを、#pragma inline=forcedは必ずインライン化することを要求します。

●コンパイラは、インライン化を試みた結果、プログラムサイズが非常に大きくなる場合、インライン化を中止します。この時、#pragma inline=forcedが指定されていた場合は、ワーニングメッセージを出力します。

EWARMバージョン7.80以前のバージョンでは最適化レベルが「低」または「無し」の場合は、インライン化は試みられません。#pragma inline=forcedが指定されていた場合、ワーニングメッセージが出力されます。

参考資料URL