我是靠谱客的博主 坚定翅膀,最近开发中收集的这篇文章主要介绍C++内联函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

内联函数是c++为提高程序运行速度所做的一项改进。

常规函数和内联函数之间的主要区别不在于编写方式,而在于c++编译器如何将他们组合到程序中。

编译过程的最终产品是可执行程序---由一组机器语言指令组成。程序运行时,操作系统将这些质量载入到计算机内存中,因此每条指令都有特定的内存地址。计算机随后将逐步执行这些指令。有时(如有循环或分支语句时),将跳过一些指令,向前或向后跳到特定地址。

常规函数调用也使程序跳到另一个地址(函数地址),并在函数结束时返回。典型实现:执行到函数调用指令的时候,函数将在函数调用后立即存储该指令的内存地址,并将函数参数复制到堆栈中,跳到标记函数起点的内存单元,执行函数代码,然后跳回到地址被保存的指令处。回来跳跃并记录跳跃意味着以前使用函数时,需要一定的开销。

c++内联函数提供了另一种选择。内联函数的编译代码与其他程序代码内联起来了 。也就是说,编译器将使用相应的函数代码替换函数调用。对于内联代码,程序无需跳到另一个位置处执行代码,再跳回来。内联函数的运行速度比常规函数稍快。但代价是需要占用更多的内存。如果程序在10个不同的地方调用同一个内联函数,则该程序将包含函数代码的10个副本。

应有选择的使用内联函数。如果执行函数代码的时间比处理函数及调用机制的时间长,则节省的时间将只占整个过程的很小一部分。如果代码执行时间很短,则内联函数调用就可以节省非内联调用使用的大部分时间。另一方面,由于这个过程相当快,因此尽管节省了该过程的大部分时间,但节省的时间绝对值并不大,除非该函数经常被调用。

要使用这项特性,必须采取下述措施之一:

1、在函数声明前加上关键字inline
2、在函数定义前加上关键字inline

通常的做法是省略原型,将整个定义(即函数头和所有函数代码)放在本应提供原型的地方

如果函数定义占多行,则将其作为内联函数就不太合适。

                                     

                                                           内联与宏

inline工具是c++信增的特性。

c语言使用预处理语句#define来提供宏------内联代码的原始实现。

最后

以上就是坚定翅膀为你收集整理的C++内联函数的全部内容,希望文章能够帮你解决C++内联函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部