C++内联函数

c/c++

浏览数:230

2019-4-1

为什么要有这玩意

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

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. 函数被多次调用