インライン関数と静的インライン関数の違いを教えてください。
どのような場合に、インラインよりも静的インラインを優先する必要がありますか?
リンク中にコンパイルの問題に直面しているインライン関数があるため、この質問をしています ( relocation error:... symbol has been discarded with discarded section ...
)。私はそれを通常の機能にしましたが、うまくいきました。今、私の先輩の何人かが静的インラインを試してみるように言いました。以下は私の機能です:
inline void wizSendNotifier (const char* nn_name, bpDU* arg=0, int aspect = -1)
{
wizuiNotifier* notifier = ::wizNtrKit.getNotifier (nn_name);
notifier->notify (arg, aspect);
}
これはクラス内ではありません。これはヘッダーファイルの中にあります!
静的関数の呼び出しは、それが定義されている特定の TU でのみ行う必要があると思います。
私の関数はヘッダー ファイルにあり、それを静的にすると、そのヘッダー ファイルをインクルードする場所で、静的関数をその翻訳単位で使用できるようになりますか?