我想创建一个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

09-12 11:09