c++ - 为 API 使用内联函数

标签 c++ optimization inline multiplatform

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

相关文章:

c++ - 如何从另一个类(class)关闭主窗口?

C++ double to hex console output need help in resolving

c++ - 获取主要可执行文件的 ELF header

c++ - 通过 Visual Studio 整体程序优化提高性能

c# - C# 中的运行时内联?

c++ - 初始化 const 类成员,错误 : declaration does not declare anything

algorithm - 如何分配桶中的元素数量以使其在一个范围内 - 算法

使用C将字符串常量转换为数值

c++ - 避免多次编译内联函数的定义

c++ - C++ 内联函数中的 return 语句实际上会返回并终止代码流吗?