我想创建一个API,该API可以在调用某个函数(例如getCPUusage()
)时重定向到Windows或Linux的getCPUusage()
函数。
所以我在用胶水文件api.h
:
getCPUusage() {
#ifdef WIN32
getCPUusage_windows();
#endif
#ifdef __gnu_linux__
getCPUusage_linux();
#endif
}
所以我想知道使用
inline
是否会是更好的解决方案,因为有了我所拥有的,调用会更大。我的问题如下:在这种情况下,对每个调用使用内联函数是否更好?
最佳答案
这取决于您的程序的用例。如果消费者仍然是c ++,那么内联很有用。
但只要假设您想在C,Pascal,Java中重用它,在这种情况下,内联就不是一种情况。调用者必须通过lib导出稳定名称,但不能从头文件导出。
Linux的Lib相当透明,而在Windows上则需要应用__dllexport
关键字-不适用于inline