Может ли кто-нибудь сказать мне, в чем разница между встроенной функцией и статической встроенной функцией.
В каких случаях я предпочитаю статическую встроенную по сравнению с встроенным?
Я задаю этот вопрос, потому что у меня есть встроенная функция, для которой я сталкиваюсь с проблемами компиляции во время связывания (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, где он определен.
так как моя функция находится в файле заголовка, и если я сделаю ее статической, будет ли это так, что когда бы я ни включал этот файл заголовка, статическая функция могла использоваться в этой единицы перевода?