在c++中调用函数时,电脑要做很多事:调用前要先保存寄存器,并在返回时恢复;而且还有实参到形参的传值;如果一个函数在源码中多次被调用,这样就会很浪费计算机的资源,但是如果我们将这个函数声明为内联函数,就可不必有这样的担心了。
例如这样一个函数:
int max(int x,int y)
{
return x>y?x:y
}
如果将其声明为内联,即inline int max(int x,int y),则调用
cout<<max(x,y)<<endl;
编译器在编译时将展开为
cout<<x>y?x:y<<endl;
从而避免了函数调用时函数实参与形参传递的麻烦!
但一般来说,内联函数机制适用于优化小,只有几行代码而且经常被调用的函数。大多数的编译器都不支持递归函数的内联。一个2000行的函数也最好不要再调用点内联展开。
注意:
内联函数应该在头文件中定义,这一点不同于其他函数。
类中的内联函数:
类的内部的成员函数,默认是作为inline处理的,也就是当他们被调用时,编译器将试图在同一行展开该函数。
显示的声明inline函数:
可以在类的声明中定义inline;
也可以在成员函数的定义中声明inline;
分享到:
相关推荐
C++学习笔记,博主个人向。内容是C++面对对象的,目录大致来源于菜鸟文档的C++面向对象,笔记是参考各种文章以及菜鸟文档改编的,内容包含C++类和对象(类定义和对象定义,类成员函数,类访问修饰符,友元函数,内联...
计算机程序设计(C++)计算机程序设计(C++)04-6.2内联函数_25_25.pptx
对 C++ 内联函数进行了说明
前端开源库-markdown-it-for-inline标记它作为内联,内联标记迭代器作为标记它的标记解析器。
此外,注入的脚本是根据webpack加载程序构建的,并且不是内联的。 仅支持Webpack 5。 安装 yarn add -D inject-inline-html-webpack-plugin 然后在HtmlWebpackPlugin之后实例化插件,并在html-webpack-plugin配置...
本项目是控制台调用内联函数inline 使用实例
插件,用于用SVG文件的实际内容内联替换SVG图像。 :warning: React性绑定不会转移到SVG替换中。 SVG文件应事先进行优化(例如:使用或 )。 占位符的图像应该被预先优化(例如:使用或 / )。 与 @ 2和 @ 3...
c++中的宏、内联函数和宏的比较 c++中的宏、内联函数和宏的比较 c++中的宏、内联函数和宏的比较 c++中的宏、内联函数和宏的比较 c++中的宏、内联函数和宏的比较
C++入门者的首选 函数的声明和调用 内联函数(C++) 函数模板(C++) 函数重载(C++)
C++语言内联函数的引出-宏函数的缺陷
Angular-ng-inline-svg.zip,用于在元素内联插入SVG文件的角度指令。ng-inline-svg,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化和改进的依赖注入。angular的设计目的是全面解决开发...
前端开源库-inline-bookmark内联书签,创建内联书签
vue-svg-inline-loader 加载器,用于在项目中用SVG文件的实际内容内联替换SVG图像。 加载程序仅解析HTML模板格式。 Loader具有用于SVG优化的内置支持。 Sprite选项仅适用于方法。 Vue CLI 通过创建的项目不是...
1、掌握重载函数概念及用法 ...如果想把一个函数定义为内联函数,则需要在函数名前面放置关键字inline,在调用函数之前需要对函数进行定义。如果已定义的函数多于一行,编译器会忽略 inline 限定符。
gulp-inline-css, 在html文件中,inline 链接的css 对电子邮件有用 -inline-css 将CSS属性添加到html文件中的属性。 对电子邮件有用。通过grunt插件 grunt-inline-css 激发灵感。 使用内联css插件模块。 3.0中新增的...
内联函数在IAR C中的使用,以配置MSP430F4152为例
如果在类中未给出成员函数定义,而又想内联该函数的话,那在类外要加上 inline,否则就认为不是内联的。内联函数的inline要加在函数前面,不可以加在声明前面。 class A { public:void Foo(int x, int y) { } // ...
css块状元素与内联元素以及inline-block
gulp-内联-css Gulp 与 Gulp 内联 CSS。 使用内联 css 样式创建电子邮件模板安装在运行之前,您必须安装并配置以下一次性依赖项: 使用下面的终端命令$ npm install -g gulp 安装依赖项后,在终端中输入以下内容: $...
一、inline 关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。 表达式形式的宏定义一例: #define ExpressionName(Var1,Var2) ((Var1)+(Var2))*((Var1)-(Var2))为什么要取代这种...