内联函数面试总结

devtools/2024/11/15 0:37:55/

面试时内联函数被问到的几率不大,但是还是要了解一下,以防万一

宏函数缺点:

1.宏函数没有类型检查

2.函数有二义性

内联函数:

定义:

以inline修饰的函数叫内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数压栈开销,内联函数提升程序运行的效率(当函数体执行时间小于开栈时间,就没必要执行函数了)、

内联函数使用时机:

如果是一个几十行的函数,函数本身执行就很耗时,那调用函数,创建栈帧(每个栈帧对应着一个未运行完的函数,栈帧中保存了该函数的返回地址和局部变量,其实就是函数运行时开辟的栈帧)的一两行可以忽略不计;但是,如果一个函数本身就一两行,因为调用函数本身而产生的那一部分消耗,就格外突出,这时就应该使用内联,来提高效率

即使声明内联编译器也不允许的情况:

代码很长时(一般是10行左右,取决于编译器),或者有递归函数,即使前面声明了inline,编译器也不会让该函数称为内联函数;

特点:

(1)inline是一种以空间换时间的做法(因为代码存放在代码区,调用内联函数时会展开,所以占用代码区空间)

(2)inline对于编译器而言只是一个建议,编译器会自动优化,如果定义的函数很长或是递归函数等,编译器会忽略内联函数

(3)inline不可以分离声明和定义;


http://www.ppmy.cn/devtools/5766.html

相关文章

C++三大特性之一:继承

文章目录 前言一、继承方式二、继承类型继承中构造和析构的顺序继承中的内存分配多继承语法(非重点)继承中同名静态成员的处理继承一般在哪里用到进阶:菱形继承和虚拟继承 总结 前言 C三大特性:继承、多态和封装。继承是面向对象编程的一个核心概念&…

linux命令ar使用说明

ar 建立或修改备存文件,或是从备存文件中抽取文件 补充说明 ar命令 是一个建立或修改备存文件,或是从备存文件中抽取文件的工具,ar可让您集合许多文件,成为单一的备存文件。在备存文件中,所有成员文件皆保有原来的属…

python爬虫-----深入了解 requests 库下篇(第二十五天)

🎈🎈作者主页: 喔的嘛呀🎈🎈 🎈🎈所属专栏:python爬虫学习🎈🎈 ✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天…

【MATLAB源码-第194期】基于matlab的MB-OFDM仿真,超宽带(UWB)无线传输。对比LS/DFT及其改进算法。

操作环境: MATLAB 2022a 1、算法描述 一、无线通信的基本原理 无线通信是通过空气或其他介质传播电磁波来传输信息的技术。这种通信方式的核心在于电磁波,它能够在没有物理连接的情况下传输数据。无线通信的基本流程包括: 信号的生成&am…

OpenHarmony网络协议通信—kcp

kcp 是一种 ARQ 协议,可解决在网络拥堵情况下 tcp 协议的网络速度慢的问题 下载安装 直接在 OpenHarmony-SIG 仓中搜索 kcp 并下载。 使用说明 准备一套完整的 OpenHarmony 3.1 Beta 代码 库代码存放路径:./third_party/kcp 修改添加依赖的编译脚本 在/develo…

uniapp 当前系统没有安装苹果根证书,是否打开证书目录(打开后依次安装证书

当你遇到这类问题时,说明你也极其的困惑!这就是为啥大抵国内这些货色搞的东西总是不尽人意!连开发者生态都搞不好,就急着吹嘘。 这是官方给的技术说明方案: 恭喜你,当你按照这个搞之后,你的问题…

面试八股——集合——List

主要问题 数组 如果数组索引从0开始时,数组的寻址方式为: 如果数组索引从1开始时,数组的寻址方式为: 此时对于CPU来说增加了一个减法指令,降低寻址效率。 ArrayList⭐ ArrayList构造函数 尤其说一下第三个构造函数流…

datalist 是什么?以及作用是什么?

datalist 是 HTML5 中引入的一个新元素&#xff0c;它用于为 <input> 元素提供预定义的选项列表。当用户开始输入时&#xff0c;浏览器会显示一个下拉列表&#xff0c;其中包含与输入值匹配的 datalist 中的选项。这使得用户可以更容易地从预定义的选项中选择&#xff0c…