欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++内联函数

程序员文章站 2024-03-23 13:42:10
...

为什么要有这玩意

作用:减少函数调用的开销

bool isBig(int a,int b) {
    return a > b;    
}
// isBig函数会无数次的被调用,调用的过程,耗时耗内存
void main() {
    int a = 1;
    int b = 2;
    while(true) {
        if (isBig()) {
        // ...
        }
    }
}
--- 假如isBig函数是内联函数,那么编译器会编译成这样 ---
void main() {
    int a = 1;
    int b = 2;
    while(true) {
        if (a > b) { // 把isBig的函数体,直接拿过来,上面的问题就不存在了
        // ...
        }
    }
}

用法

定义

// 1.内联函数 
inline bool isBig(int a,int b) {
    return a > b;    
}
// 2.内联成员函数
class B{
    // func1和func2都是内联成员函数
    // 1. 用inline关键字明确指定为内联成员函数
    inline void func1(); 
    // 2. 在类中,定义并实现的函数,自动定义为内联成员函数
    void func2() {
    };
};

什么时候用(满足以下至少一条):

  1. 函数体很短

  2. 函数被多次调用