【C++】inline内联函数 VS #define宏

文章目录

  • 1. 内联概念
  • 2. 内联特点
  • 3. 宏的优缺点

1. 内联概念

以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开无函数建立栈帧的开销,内联函数提升程序运行的效率。

  1. 在release模式下,默认展开生效。

  2. 在debug模式下,展开不生效,需要对编译器进行设置才可以展开。
    在这里插入图片描述
    Visual Studio 2022为例,先对文件右键选择属性,设置如下:
    在这里插入图片描述
    设置后:
    在这里插入图片描述

2. 内联特点

  1. inline是一种以空间换时间的做法,函数体替换函数调用缺陷:过多使用会使目标文件变大,优势:少了函数调用的栈帧开销,提高程序运行效率。

  2. 内联只是向编译器发出的一个请求,编译器可以选择忽略这个请求。不同编译器关于inline实现机制可能不同,一般来说内联用于优化函数规模较小、流程直接(非递归)、频繁调用的函数,如果该函数规模太大,编译器不会展开内联函数

  3. inline不建议声明和定义分离,分离会导致链接错误。因为inline被展开,就没有函数地址了,链接就会找不到。

3. 宏的优缺点

宏的优点:

  1. 增强代码的复用性。
  2. 提高性能。

宏的缺点:

  1. 不方便调试。(预编译进行了替换)
  2. 可读性差,可维护性差。
  3. 没有类型安全的检查(利与弊都有)。

C++中可以用什么替代宏?

  1. 常量用const enum枚举。
  2. 短函数用inline内联函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/442386.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

时序报告Report_timing_summary之一步精通配置选项使用

目录 一、前言 二、配置选项概览图 三、配置选项 3.1 Options 3.1.1 report 3.1.2 path limits 3.1.3 path display 3.2 Advanced 3.2.1 report 3.2.3 miscellaneous 3.3 Timer Settings 3.4 共有部分 四、工程示例 4.1 工程设计代码 4.2 约束文件 4.3 Option…

Stable Diffusion WebUI 中英文双语插件(sd-webui-bilingual-localization)并解决了不生效的情况

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 大家好,我是水滴~~ 本文介绍一款中英文对照插件 sd-webui-bilingual-localization,该插件可以让你的 Stable Diffusion WebUI 界面同时显示中文和英文,让我…

【C++】手撕string类(超实用!)

前言 一、标准库中的string类 1.1 string类介绍 1.2 string的常用接口 1.2.1 常用的构造函数 1.2.2 容量操作接口 (1)size (2)capacity (3)empty (4)clear &#xff08…

stm32学习记录-5.2PWM输出控制sg90舵机角度

源码连接:https://gitee.com/HL12334/stm32-learning-code 前提知识: 1.定时器中断 1.关键概念 1.1pwm输出 1.常用术语 OC(output compare)输出比较CNT(counter),定时器中用于计数的寄存器…

【Leetcode每日一刷】数组|双指针篇:977. 有序数组的平方、76. 最小覆盖子串(附滑动窗口法详解)

力扣每日刷题 一、977. 有序数组的平方1.1题目1.2、解题思路1.3、代码实现——C 二、76. 最小覆盖子串2.1:题目2.2、解题思路2.3:代码实现——c2.4:易错点 一、977. 有序数组的平方 1.1题目 [题目链接]( 1.2、解题思路 题型:双…

数据中台驱动:高效交付之道

如何保证数据中台高效交付? 在数据行业中,项目交付难题尤为突出,尤其在数据中台领域。数据中台项目交付面临诸多挑战,若不妥善解决,将会降低服务质量,影响企业数字化建设的顺利开展,甚至影响项目…

21 卷积层里的多输入多输出通道【李沐动手学深度学习v2课程笔记】

目录 1. 多输入输出通道&相应代码实现 1.1 多输入 1.2 多输出 1.3 1x1 卷积层 1.4 小结 1. 多输入输出通道&相应代码实现 1.1 多输入 为了加深理解,我们实现一下多输入通道互相关运算。 简而言之,我们所做的就是对每个通道执行互相关操作&a…

电磁兼容(EMC):一文读懂压敏电阻选型

目录 1 MOV 外观结构 2 MOV 常见品牌 3 MOV命名规则 4 MOV 工作原理 5 MOV基本特点 6 MOV典型应用 7 MOV电气参数说明 8 MOV 选型注意事项 8.1 压敏电压V1mA 8.2 峰值脉冲电流 IP,钳位电压VC 8.3 漏电流IR 8.4 结电容 9 有绝缘耐压测试要求时选型 10 …

预处理详解

目录 一:预定义符号 二:#define定义常量 三:#define定义宏 四:带有副作用的宏定义 五:宏的替换规则 六:宏函数的对比 七:# 和 ## 7.1 #运算 7.2 ##预算符 八:命名约定 九&…

mac电脑版MATLAB R2023b for Mac中文激活版

MATLAB R2023b for Mac:科学计算的终极工具 软件下载:MATLAB R2023b for Mac中文激活版下载 🔬 探索科学,无限可能 MATLAB R2023b for Mac,助您深入挖掘科学计算的奥秘。从数据分析、算法设计到可视化展示,…

物联网导论

物联网起源 物联网:是一个基于互联网、传统电信网等信息承载体,让所有能够被独立寻址的普通物理对象实现互联互通的网络。它具有普通对象设备化、自治终端互联化和普适服务智能化三个重要特征。 按照规定的协议,将具有感知、通信、计算等功…

T2 小美的平衡矩阵(25分) - 美团编程题 题解

考试平台: 牛客网 题目类型: 30道单选题(60分) 2 道编程题 (15分 25分) 考试时间: 2024-03-09 (两小时) 题目描述 小美拿到了一个n*n的矩阵,其中每个元素是…

简单BFF架构设计

又到周五了有了一个小时的闲暇时间简单写点东西,介绍一个简单的BFF的架构。BFF:Backends For Frontends,其实现在是个比较常见的前端架构设计的方案,其最大的优势便在于前端可以高度自由的在Node层做一些server端才可以做的东西,比如SSR、登录…

【JavaEE进阶】Spring中事务的实现

文章目录 🍃前言🌴事务简介🚩 什么是事务?🚩为什么需要事务?🚩事务的操作 🍀Spring 中事务的实现🚩Spring 编程式事务🚩Spring声明式事务Transactional🚩Transactional…

Using WebView from more than one process

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。 未经允许不得转载 目录 一、导读二、概览三、问题过程源码追踪…

Pinctrl子系统_04_Pinctrl子系统主要数据结构

引言 本节说明Pinctrl子系统中主要的数据结构,对这些数据结构有所了解,也就是对Pinctrl子系统有所了解了。 前面说过,要使用Pinctrl子系统,就需要去配置设备树。 以内核面向对象的思想,设备树可以分为两部分&#x…

ssrf漏洞

SSRF漏洞概述和演示 SSRF(Server-Side Request Forgery,服务器端请求伪造)是一种常见的Web应用程序安全漏洞。它允许攻击者诱使服务器端应用程序发起任意HTTP(S)请求到内部系统或者网络,而这些请求通常是正常情况下服务器自身为了…

MYSQL | 数据库到底是怎么来的?

“以史为鉴,可以让我们更深刻地理解现在,预见未来。” 要想知道一件东西是怎么发生的, 我们不妨把时间拨回关系型数据库被提出前后来探索。在信息技术飞速发展的今天,回望数据库管理系统的演进之路,我们可以深刻理解到技术进步如…

产品推荐 - 基于6U VPX的双TMS320C6678+Xilinx FPGA K7 XC7K420T的图像信号处理板

综合图像处理硬件平台包括图像信号处理板2块,视频处理板1块,主控板1块,电源板1块,VPX背板1块。 一、板卡概述 图像信号处理板包括2片TI 多核DSP处理器-TMS320C6678,1片Xilinx FPGA XC7K420T-1FFG1156,1片…

20240309-1-校招前端面试常见问题-前端框架及常用工具

校招前端面试常见问题【5】——前端框架及常用工具 React Q:请简述一下虚拟 DOM 的概念? 基于 React 进行开发时所有的 DOM 构造都是通过虚拟 DOM 进行,每当数据变化时,React 都会重新构建整个 DOM 树,然后 React 将…
最新文章