美文网首页
【C++】要点笔记--1--内联函数(提醒用)

【C++】要点笔记--1--内联函数(提醒用)

作者: X_Y的略懂人生 | 来源:发表于2016-11-07 10:47 被阅读0次

Inline 关键字:修饰内联函数

内联函数的使用主要是为了使编译器在编译阶段就能够将内联函数直接通过该处的调用直接将代码插入进去;不用像普通函数一样,先进行编译,然后在调用的时候再通过栈操作,先保存当前的代码段地址->转到该函数的定义->调用函数->执行->ret->返回原有段地址,继续执行主函数。


Attention:

  • 内联函数的在类中的使用表现,通常是采用直接在类内方法声明的时候进行实现的。例如:
@Example
class Solution{
public:
      int max(int a, int b){
            return a<b?b:a;
      }
}
  • 而对于普通的内联函数而言,通常是使用inline关键字添加在函数的实现阶段的。
    注意:
    • inline来说,只有在函数实现的时候添加才能够被编译器识别为内联函数,如果在函数声明的阶段引用该关键字,则编译器并不能将其识别为内联函数。
  • inline关键字本质上是一个是实现修饰符,而非声明修饰符,所以应该用于函数实现部分的修饰(也可以放置inline在声明,但是没有必要)。

例如:

@Example
//仅在函数声明的时候添加关键字**inline**,这种情况无法被识别为内联函数
inline void swap(int &a, int &b);
void swap(int &a, int &b)
{
      int temp = a;
      a = b;
      b = temp;
}

而如果在函数实现的时候添加关键字则情况就不一样了,例如:

@Example
//在函数实现的时候添加关键字**inline**,有效,被识别为内联函数
void swap(int &a, int &b);
inline void swap(int &a, int &b)
{
      int temp = a;
      a = b;
      b = temp;
}
  • 对于类内定义的内联函数,在编译阶段,编译器会将这段代码直接插入到制定的调用位置中,所以在内联函数短小精悍的情况下,会有效提升整体程序的运行效率,避免了在运行阶段反复进行调用。但需注意以下几点:
  • 内联函数的实现必须保证代码内容小而高效,若代码段过长而又强行被定义成了内联函数(包括类内实现的方法inline修饰的函数),则编译器会默认将其不识别为内联函数,否则会极大地影响程序的运行效率。
  • inline修饰只是建议编译器对函数使用内联。而至于真的是否被定义为内联函数,由编译器视函数的实际情况来决定。如果函数过长很多,或函数中有循环,条件判断等语句,编译器一般不会将其识别为内联。
  • 如果内联函数的使用在内联函数定义之前,也不会内联。

相关文章

  • 【C++】要点笔记--1--内联函数(提醒用)

    Inline 关键字:修饰内联函数 内联函数的使用主要是为了使编译器在编译阶段就能够将内联函数直接通过该处的调用直...

  • ★ 学习笔记:《iOS高级:Swift入门精讲②》第一节 Swi

    前言:本篇仅为视频学习笔记 内联函数 (Inline Function)内联函数在C++这个函数里是有的,那么在s...

  • 宏定义min

    C++内联函数

  • 白话kotlin:内联函数助你提升运行效率

    什么是内联函数 这个玩意吸取自C++,如下: 内联函数是C++的增强特性之一,用来降低程序的运行时间。当内联函数收...

  • NS_INLINE 内联函数

    1 内联函数与宏定义 C++ 语言支持函数内联,其目的是为了提高函数的执行效率(速度)。在C程序中,可以用宏代码提...

  • 《C++ Primer Plus》:函数探幽

    本章内容概览 内联函数 引用变量 按引用传递函数参数 默认参数 函数重载 函数模板 内联函数 内联函数是C++为提...

  • 第九章 内联函数

    简介:C++中预处理器宏存在的问题,在C++中如何用内联函数解决这些问题以及使用内联函数的方针和内联函数的工作机制...

  • C++基础-(函数)

    C++基础 函数 内联函数 内联函数非常短的函数适合于内联函数体会到插入到发生函数调用的地方普通函数调用多次也只有...

  • C++内联函数与C语言函数宏

    C++内联函数 什么是内联函数? 在函数的声明和定义前加一个 inline 关键字,这个函数就是内联函数。 通常会...

  • Kotlin 内联函数 inline

    Kotlin 中新增了「内联函数」,内联函数起初是在 C++ 里面的。 那在 Kotlin 中加入内联函数,是有什...

网友评论

      本文标题:【C++】要点笔记--1--内联函数(提醒用)

      本文链接:https://www.haomeiwen.com/subject/cctouttx.html