内联函数inline

来源:互联网 发布:网络运营 专业技能 编辑:程序博客网 时间:2024/04/28 12:15

在c/c++代码中常可以看到在函数定义中出现关键字inline,如下截取代码示例

inline int Slice::compare(const Slice& b) const {  const size_t min_len = (size_ < b.size_) ? size_ : b.size_;  int r = memcmp(data_, b.data_, min_len);  if (r == 0) {    if (size_ < b.size_) r = -1;    else if (size_ > b.size_) r = +1;  }  return r;}

作用:

该关键字修饰定义的函数称为内联函数,其作用为编译器在该函数调用语句处直接嵌入函数代码段(类似于宏),避免程序运行时调用该函数造成额外开销,即提升运行效率

Note:

1. 内联函数会造成程序体积的增大,故内联函数应短小且调用频率较高。

2. inline定义不一定生效,即编译器可能忽略inline定义

3. 类中定义的成员函数隐含定义为内联函数,类外定义需使用关键字inline
4. 存在几种特殊情况不能定义inline函数,否则编译器报错或忽略,如递归及较复杂的结构(while,switch)等

0 0
原创粉丝点击