我想创建一个 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
关于c++ - 为 API 使用内联函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16219539/