有人能告诉我内联函数和静态内联函数的区别吗?
在哪些情况下应该优先使用静态内联而不是内联?
我问这个问题是因为我有一个内联函数,在链接时遇到编译问题(重定位错误:...符号已经被舍弃与已舍弃的部分...
)。我将其更改为普通函数,它可以正常工作。现在我的一些前辈告诉我尝试使用静态内联。以下是我的函数:
inline void wizSendNotifier (const char* nn_name, bpDU* arg=0, int aspect = -1)
{
wizuiNotifier* notifier = ::wizNtrKit.getNotifier (nn_name);
notifier->notify (arg, aspect);
}
而这不是在类内部。这是在头文件中!
我猜调用静态函数只应该在定义它的特定TU中进行。
由于我的函数在头文件中,如果我将其设置为静态的,那么无论我在哪里包含该头文件,静态函数都可以在该翻译单元中使用吗?
::wizNtrKit
是一个静态对象吗?它的链接是什么? - Walter