【C++】内联函数 ① ( 内联函数引入 | 内联函数语法 )
文章目录
- 一、内联函数引入
- 1、内联函数引入
- 2、代码示例 - 宏代码片段 与 内联函数
- 二、内联函数语法
- 1、内联函数语法说明
- 2、代码示例 - 内联函数基本语法
一、内联函数引入
1、内联函数引入
" 内联函数 " 是 C++ 语言中的一种特殊函数 , 其目的是为了提高程序的执行效率 ;
在 C++ 中 , 定义常量
const int a = 10
可以替换 C 语言中的 宏定义
#define a 10
使用 常量 可以 替代 宏定义 ;
宏定义分为两种 , 一种是 宏常数 , 另外一种是 宏代码片段 ;
- C++ 中使用 常量 替代 宏常数 ;
- C++ 中用于 替代 宏代码片段 的是 inline 内联函数 ;
C++ 中建议开发者使用 " 内联函数 " 替代 C 语言中的 " 宏代码片段 " ;
宏代码片段 示例 :
// 宏代码片段
#define FUN(a, b) ((a) < (b) ? (a) : (b))
内联函数 示例 : 下面的 内联函数 可以 替换 上面的 宏代码片段 , 二者的功能基本相同 ;
// 内联函数
inline int fun(int a, int b)
{return a < b ? a : b;
}
2、代码示例 - 宏代码片段 与 内联函数
在下面的代码中 , 分别定义了 宏代码片段 FUN(a, b) 和 内联函数 inline int fun(int a, int b) , 二者实现的功能基本相同 , 都可以实现获取 a 和 b 两个值之间的较小值 ;
代码示例 - 宏代码片段 与 内联函数 :
// 导入标准 io 流头文件 其中定义了 std 命名空间
#include <iostream>
// 导入 std 命名空间
using namespace std;// 宏代码片段 : 获取 a 和 b 中较小的值
#define FUN(a, b) ((a) < (b) ? (a) : (b))// 内联函数 : 获取 a 和 b 中较小的值
inline int fun(int a, int b)
{return a < b ? a : b;
}int main() {// 控制台暂停system("pause");return 0;
}
二、内联函数语法
1、内联函数语法说明
C++ 内联函数语法如下 :
inline 函数声明 { // 函数体
}
函数的声明 包括 :
- 函数名
- 参数列表
- 返回类型
在 函数声明 , 也就是 普通函数 之前加上 inline 关键字 , 就可以将 普通函数 声明为 内联函数 ;
内联函数 的 调用 与 普通函数一样 , 直接调用即可 ; 只是在编译时有区别 , 使用上没有区别 ;
2、代码示例 - 内联函数基本语法
下面的代码中 , 内联函数只是在 int fun(int a, int b) 函数声明之前 , 加上了 inline 关键字 ;
调用该函数时 , 直接使用 函数名 fun 调用即可 , 与普通函数调用方式相同 ;
代码示例 :
// 导入标准 io 流头文件 其中定义了 std 命名空间
#include <iostream>
// 导入 std 命名空间
using namespace std;// 宏代码片段 : 获取 a 和 b 中较小的值
#define FUN(a, b) ((a) < (b) ? (a) : (b))// 内联函数 : 获取 a 和 b 中较小的值
inline int fun(int a, int b)
{return a < b ? a : b;
}int main() {// 调用内联函数int a = fun(1, 2);// 打印内联函数调用结果printf("a = %d\n", a);// 控制台暂停system("pause");return 0;
}
执行结果 :
a = 1
请按任意键继续. . .

相关文章:
【C++】内联函数 ① ( 内联函数引入 | 内联函数语法 )
文章目录 一、内联函数引入1、内联函数引入2、代码示例 - 宏代码片段 与 内联函数 二、内联函数语法1、内联函数语法说明2、代码示例 - 内联函数基本语法 一、内联函数引入 1、内联函数引入 " 内联函数 " 是 C 语言中的一种特殊函数 , 其目的是为了提高程序的执行效率…...
聊聊springboot的ConfigurationProperties的绑定
序 本文主要研究一下springboot的ConfigurationProperties的绑定 ConfigurationPropertiesBindingPostProcessor org/springframework/boot/context/properties/ConfigurationPropertiesBindingPostProcessor.java /*** {link BeanPostProcessor} to bind {link PropertySo…...
Mysql和Oracle的语法区别?
Mysql和Oracle是两种不同的关系型数据库。 MySQL通常在中小型应用程序、Web应用程序和小型企业中广泛使用,因为它易于学习和部署,而且成本较低。 Oracle数据库通常用于大型企业和复杂的企业级应用程序,因为它提供了高度可扩展性、高可用性…...
F - LIS on Tree
F - LIS on Tree (atcoder.jp) 问题描述:树上LIS。 普通LIS。O(n * n)。 void solve() {int n; cin>>n;vector<int> f(n 1),a(n1);for(int i 1; i < n; i) {cin>>a[i];f[i] 1;for(int j 1; j < i; j) {if(a[i] > a[j]) f[i] max…...
2023 年全国大学生数学建模B题目-多波束测线问题
B题目感觉属于平面几何和立体几何的问题,本质上需要推导几何变换情况,B题目属于有标准答案型,没太大的把握不建议选择,可发挥型不大。 第一问 比较简单,就一个2维平面的问题,但有点没理解,这个…...
qt creater11 翻译国际化教程教程:
先出效果图。 闲聊几句:qt这个翻译很方便,能直接导出项目里所有文字。 具体步骤如下: 在Qt中,我们可以使用QTranslator类来实现多语言切换。以下是一般步骤: 1. 在你的源代码中,所有需要翻译的字符串都…...
【AWS实验 】在 AWS Fargate 上使用 Amazon ECS 部署应用程序
文章目录 实验概览目标实验环境任务 1:连接到实验命令主机任务 2:将应用程序容器化任务 3:构建 Web2048 容器任务 4:创建 Amazon ECR 存储库并推送 Docker 映像任务 5:创建 ECS 集群任务 6:测试应用程序总结…...
matlab几种求解器的选择fsolve-sole-vpasolve
文章目录 fsolvesolvevpasovle总结vpasovle的结果fsovle的结果 fsolve 求数值解 result_xfsolve(my_fun,x0,options)参数: my_fun:待求解函数,作为一个.m文件 x0:初始值,向量,可以仅仅指定其中的几项solve 强大的求解器。在方程组中求解析…...
无限访问 GPT-4,OpenAI 强势推出 ChatGPT 企业版!
继 ChatGPT 收费大降价、推出 App 版等系列动作之后,OpenAI 于今日宣布正式发布面向企业的 AI 助手——ChatGPT Enterprise 版。 与 To C 端的 ChatGPT 版本有所不同的是,该版本可以以更快速度无限制地访问 GPT-4,还可以用来处理更长输入的上…...
MySQL的故事——Schema与数据类型优化
Schema与数据类型优化 一、选择优化的数据类型 更小的通常更好 应该尽量使用可以正确存储数据的最小类型,更小的数据类型通常更快,因为他们占用更少的磁盘,内存和CPU缓存,并且处理时需要的CPU周期更少 简单就好 更简单的数据类型…...
C++编译和链接
编译和链接 一、源代码的组织 头文件(.h):#include头文件、函数的声明、结构体的声明、类的声明、模板的声明、内联函数、#define和const定义的常量等。 源文件(.cpp):函数的定义、类的定义、模板具体化的…...
【CSDN技术】Markdown编辑器如何使用-csdn博客编写入门
Markdown编辑器如何使用-csdn博客编写入门 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自…...
【docker】运行redis
拉取redis镜像 有多种选择: redis(基础版)redis/redis-stack(包含redis stack server和RedisInsight)redis/redis-stack-server(仅包含redis stack server) docker pull redis docker pull r…...
Paddle训练COCO-stuff数据集学习记录
COCO-stuff数据集 COCO-Stuff数据集对COCO数据集中全部164K图片做了像素级的标注。 80 thing classes, 91 stuff classes and 1 class ‘unlabeled’ 数据集下载 wget --directory-prefixdownloads http://images.cocodataset.org/zips/train2017.zip wget --directory-prefi…...
SpringBoot 框架学习
java 学习笔记指路 基础知识 Python转java补充知识 Java中常见的名词解释 前端 【黑马程序员pink老师前端】HTML 【黑马程序员pink老师前端】JavaScript基础大总结 【黑马程序员pink老师前端】JavaScript函数与作用域 【黑马程序员pink老师前端】JavaScript对象 数据库 【黑马程…...
java - lua - redis 完成商品库存的删减
java调用lua脚本完成对商品库存的管理 主页链接 微风轻吟挽歌的主页 如若有帮助请帮忙点赞 //lua脚本 获取到内存不够的商品StringBuilder sb new StringBuilder();//定义一个数组存储可能缺少库存的值sb.append(" local table {} ");//获取值sb.append(" …...
dbeaver离线安装clickhouse连接驱动
Clickhouse 数据库连接工具——DBeaver 主要介绍了Clickhouse 数据库连接工具——DBeaver相关的知识,希望对你有一定的参考价值。 Clickhouse 数据库连接工具——DBeaver 1.下载 DBeaver 和 连接驱动 https://dbeaver.io/files/dbeaver-ce-latest-x86_64-setup.…...
2024腾讯校招后端面试真题汇总及其解答(二)
11.如果同时有5个任务在10分钟之后提交,或者更多,那么如果是一个个从队列中拿数据,那么前一个任务会影响后续任务执行时间,说一下解决思路 你的问题是一个典型的并发处理问题。如果你的系统是单线程的,那么的确,前一个任务的执行时间会影响后续任务的执行时间。但是,你…...
datagrip 相关数据连接信息无缝迁移
背景 因为公司换电脑了,接触的项目比较多,不同项目,不同环境的数据库连接有好几十个,如果在新电脑上挨个重新连接一遍劳心劳力,所以想看一下能不能直接将之前保存的连接信息直接迁移到新的电脑上面。 为此,…...
不就是G2O嘛
从零开始一起学习SLAM | 理解图优化,一步步带你看懂g2o代码 SLAM的后端一般分为两种处理方法,一种是以扩展卡尔曼滤波(EKF)为代表的滤波方法,一种是以图优化为代表的非线性优化方法。不过,目前SLAM研究的主…...
74HC595驱动8位数码管实战:从查找表到动态扫描的完整流程
74HC595驱动8位数码管实战:从查找表到动态扫描的完整流程 在嵌入式系统开发中,数码管显示是最基础也最考验硬件理解能力的环节之一。记得我第一次尝试用74HC595驱动数码管时,被那个"看似简单却暗藏玄机"的动态扫描原理折磨了整整三…...
零基础玩转CosyVoice:3步完成声音克隆,制作专属语音祝福
零基础玩转CosyVoice:3步完成声音克隆,制作专属语音祝福 1. 引言:让声音成为你的专属礼物 你有没有想过,用自己或亲友的声音,生成一段独一无二的语音祝福?比如,用妈妈的声音说“生日快乐”&am…...
论文省心了!2026年实力出众的专业AI论文写作工具
2026年AI论文写作工具已从“内容生成”进化为多维度学术支持系统,核心评价维度包括文献真实性、格式合规性、长文本逻辑、查重降重、AIGC合规与多语言适配能力。本次测评覆盖6款主流工具,涵盖中文与英文场景,支持全流程与专项功能,…...
FOC算法中SIMULINK常用模块解析:从坐标变换到SVPWM(实践指南)
1. FOC算法与SIMULINK模块概述 第一次接触FOC(磁场定向控制)算法时,我被那些复杂的坐标变换搞得晕头转向。直到在SIMULINK里亲手搭建了完整的控制环路,才真正理解每个模块的作用。FOC算法的核心思想,简单来说就是把三相…...
TNTSearch 实战案例:构建电商产品搜索系统的完整流程
TNTSearch 实战案例:构建电商产品搜索系统的完整流程 【免费下载链接】tntsearch A fully featured full text search engine written in PHP 项目地址: https://gitcode.com/gh_mirrors/tn/tntsearch TNTSearch 是一个功能强大的 PHP 全文搜索引擎ÿ…...
一般非线性最优问题的迭代解法思路
1.迭代方法在经典最优化极值问题中,解析法虽然具有概念简明,计算精确等优点,但因只能适用于简单或特殊问题的寻优,对于复杂的工程实际问题通常无能为力,一般采用迭代算法,逐渐逼近最优解。 最优化问题的迭…...
如何让旧款Mac焕发新生:OpenCore Legacy Patcher终极指南
如何让旧款Mac焕发新生:OpenCore Legacy Patcher终极指南 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否有一台被苹果官方"遗忘"的旧款Mac&a…...
倩女幽魂易语言源码|支持编译运行,适合易语言开发者学习研究
温馨提示:文末有联系方式【标一】可编译倩女幽魂易语言源码开放 本套源码基于易语言开发,已完成基础环境配置与编译测试,生成的程序可正常启动并执行核心逻辑。 适用于熟悉易语言语法、掌握API调用与内存读写技术的开发者。【标二】仅面向具备…...
突破reCAPTCHA屏障:EzCaptcha自动化识别实战指南
1. 为什么我们需要自动化处理reCAPTCHA? 每次在网上注册账号或者提交表单时,那个让你"勾选我不是机器人"的小方框,就是reCAPTCHA验证系统。作为谷歌推出的智能验证工具,它确实有效阻止了大量垃圾注册和恶意攻击…...
DeerFlow开源项目部署与实践指南:从环境准备到生产落地
DeerFlow开源项目部署与实践指南:从环境准备到生产落地 【免费下载链接】deer-flow DeerFlow is a community-driven framework for deep research, combining language models with tools like web search, crawling, and Python execution, while contributing ba…...
