【C++】内联函数是什么?内联和宏有什么区别?
目录
什么是内联函数?
什么时候使用内联函数?
内联函数和常规函数的区别
如何使用内联函数?
注意:
代码示例
运行结果:
内联与宏有什么区别
什么是内联函数?
内联函数是C++为了提高程序运算速度所做的一项改进。
内联函数 的编译代码与其他程序的代码“内联”起来,也就是不用乱跳来跳去,编译器将使用的相应的函数代码替换函数调用。
什么时候使用内联函数?
内联函数的 运行速度比常规函数稍快,但是代价是需要更多内存。
内联函数和常规函数的区别
如何使用内联函数?
- 在函数声明前加上关键字inline
- 在函数定义前加上关键字inline
通常是省略原型,将整个定义(函数头、函数代码)放在本应提供原型的地方
注意:
将函数作为内联函数时,可能编译器不一定满足。
内联函数不能递归,所以不能自己调用自己,所以不能作为内联函数
有的编译器没有这种特性
代码示例
// inline.cpp -- using an inline function
#include <iostream>// an inline function definition
inline double square(double x) { return x*x; }int main()
{using namespace std;double a, b;double c = 13.0;a = square(5.0);b = square(4.5 + 7.5);cout << "a = " << a << ", b = " << b << endl;cout << "c = " << c;cout << ", c squared = " << square(c++) << "\n";cout << "Now c = " << c << endl;return 0;
}
运行结果:
请注意b的结果,假如是宏,那么就不可能计算正确
内联与宏有什么区别
宏是通过文本替换
比如: #define SQUARE(X) X*X
运行: b=SQUARE(4.5 + 7.5) 最后结果是 b = 4.5 + 7.5 * 4.5 +7.5 ;
【C++】内联函数是什么?内联和宏有什么区别?相关推荐
- C++的内联函数和非内联函数的区别
一.内联函数和非内联函数的定义 1.内联函数 inline void test(); void test() { cout<<"test"<<endl; } ...
- python内置函数open_Python的内置函数open()的注意事项
用法 : open("file_address","open_mode") 例子 : f = open("D:\PycharmProjects\log ...
- python内置函数调整_python - 内置函数
一.内置函数 嵌入到主调函数中的函数称为内置函数,又称内嵌函数. 作用是提高程序的执行效率,大多编程语言都有自己的内置函数. 1.作用域相关 deffunc(): name= 'alex' print ...
- inline 内联函数详解 内联函数与宏定义的区别
一.在C&C++中 一.inline 关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义. 表达式形式的宏定义一例: #define ExpressionName ...
- 抽象数据类型(顺序栈)、断言、包含头文件、内联函数、非内联成员函数[C++ In Action][4]...
1. C++中的接口与实现思想, 即类的定义.数据成员的定义.函数原型在接口文件中进行, 实现代码放在实现文件中 2. 函数调用开销:调用前要先保存寄存器,并在返回点恢复:复制实参:程序必须转入一个新 ...
- 列举5个python内置函数_Python5个内建高阶函数的使用
描述 本文结合各种实际的例子详细讲解了Python5个内建高阶函数的使用,能够帮助理解Python的数据结构和提高数据处理的效率,这5个函数分别是: map reduce filter sorted/ ...
- python内置函数教程_Python内置函数详解
此文参考python文档,然后结合自己的理解,写下来,一方面方便自己,让自己好好学习,顺便回忆回忆:另一方面,让喜欢的盆友也参考一下. 经查询,3.6版本总共有68个内置函数,主要分类如下: 数学运算 ...
- python中常见的内置函数_Python常用内置函数总结
Python 常用内置函数总结 一.数学相关 1 .绝对值: abs(-1) 2 .最大最小值: max([1,2,3]) . min([1,2,3]) 3 .序列长度: len('abc') . l ...
- all()是python内置函数吗_Python内置函数all(),python
内置函数 all() 1.描述: all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 True,否则返回 False. 元素除了是 0.空.None.False外都算 T ...
- mysql常用内置函数_mysql常见内置函数
在mysql中有许多内置的函数,虽然功能都能在PHP代码中实现,但巧妙的应用mysql内置函数可以大大的简化开发过程,提高效率. 在这里我总结一下一些常用的,方便以后查看: mysql字符串函数: c ...
最新文章
- 分享个网盘,个人觉得很不错!
- iOS学习资源(一)
- 自然语言系列学习之表示学习与知识获取(六)融合实体描述的知识表示和融合实体所在句子的知识表示
- 解决JBoss只能通过localhost访问不能通过IP的问题
- iPhone开发之BASE64加密和解密
- 批量改变文件夹和子文件夹中图片格式的两种方法
- 「2019冬令营提高组」全连
- 软件工程——快速掌握面向对象开发方法
- STM32工作笔记0080---UCOSIII系统内部任务
- 2015年4月20 号的日志
- 《从零开始学Swift》学习笔记(Day 13)——数据类型之整型和浮点型
- 【iCore4 双核心板_ARM】例程三:EXTI中断输入实验——读取ARM按键状态
- JDK和JRE和JVM的区别
- 计算机boot进入u盘启动,BIOS中设置U盘启动的几种方法
- kinect v2 相机标定
- 愤怒的小鸟AR 版终于正式上架!场景超逼真
- contiki-6lowpan开发环境之搭建
- 地推项目大全_地推吧:app线上推广渠道大全(软件app上新地推)
- 有什么好用的gif制作软件 制作GIF表情包教程
- linux里的葫芦娃----awk ,sed,grep
热门文章
- s2sh整合(详细版)
- PS橡皮擦魔棒设置图片的背景为透明
- VSPD V9版(Virtual Serial Port Driver 9.0)
- 虚拟串口VSPD_V10.0.944官方最新版
- android 高德地图移动卡顿_使用高德SDK开发安卓地图应用软件
- VR虚拟展厅产品展示如何实现的
- 计算机毕业设计Java校园闲置物品交换平台系统(源码+系统+mysql数据库+lw文档
- Oracle操作语句(PL/SQL)创建表空间:第 1 行出现错误: ORA-01119: 创建数据库文件时出错 ORA-27040: 文件创建错误, 无法创建文件OSD-04002: 无法打开文件
- STemWin专题--画直线
- 2021 国内外 IoT 物联网平台汇总