C++内联函数

为何要有这玩意

做用:减小函数调用的开销函数

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的函数体,直接拿过来,上面的问题就不存在了
        // ...
        }
    }
}

用法

定义code

// 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. 函数被屡次调用编译

相关文章
相关标签/搜索