内联函数、auto关键字、范围for和nullptr

C++编程基础:内联函数、auto关键字、基于范围的for循环和nullptr 本文介绍了C++编程中的几个重要概念,包括内联函数的使用和特性,auto关键字的类型推导机制及其使用规则,基于范围的for循环的语法和使用条件,以及nullptr在指针控制中的应用。 阅读详情

宏的缺点

在C语言有宏这么一个概念,主要是为了方便使用函数

但是宏有一些缺点

内联函数

为了避免宏函数这种缺点C++就引入了内联函数,一般函数使用时要建立堆栈,但内联函数不用、

内联函数的特性是以空间换时间,并不是占用内存空间,而是使用内联函数后编译出来的可执行程序会变大

内联函数不建议声明和定义分离,这样会导致链接错误

内联函数调用的地方都是直接展开的,所以建议内联函数直接在.h文件里定义就行了

这就是内联函数

auto关键字

让编译器去自动推导类型

auto的实际价值是简化代码,当类型很长时可以让编译器自行推导

这里b的类型就是由a推导出来的,a是int类型,所以推导出来的b的类型就也是int类型

注:C语言里的 typedef().name()就可以去获取变量的类型

auto还有其他用法,就像这样。第一行的意思是c被限定了只能是个指针,第二行的意思就是d只能是a的别名

而且auto也可以一行声明多个变量,不过变量类型要相同

auto也不能作形参,不能声明数组

语法糖——(范围for)

这个是c++里的语法糖,这样使用for循环可以使用较少的代码达成目的

他的原理是依次自动取数组中数据赋值给e对象,自动判断结束

注:这里的e也可以换成其他值

空指针——nullptr

在一些极端情况下,C++里的NULL会被定义成0

在这段代码里可以看到系统把NULL认定成了int类型

所以NULL在C++里并非全部适用,所以在c++里就引用关键字nullptr去替代NULL

 

第二章第六节:C++快速入门之内联函数,auto关键字,C++11基于范围的for循环和nullptr 文章目录一:建立C++工程文件二:C++关键字三:命名空间(1)命名空间的作用(2)命名空间的定义A:命名空间的定义B:注意事项(3)命名空间的使用四:C++的输入和输出(1)cout(2)cin五:缺省参数(1)缺省参数的概念(2)缺省参数的分类A:全缺省参数B:半缺省参数(3)注意事项六:函数重载(1)函数重载的概念 C++虽然是基于C语言开发的,但是经过版本的不断更迭,有些语法,操作和C语言还是有缺别的。所以这也是很多人在学完C语言后,看到C++,总感觉两者没有关联,甚至觉得是两种不同的语言。读者在看 阅读详情

相关推荐

CH455G数码管驱动与键盘扫描:I2C通信协议深度解析与实战代码

本文深度解析CH455G芯片的I2C通信协议,涵盖数码管驱动与键盘扫描功能的实战应用。通过详细讲解起始/停止信号、数据帧结构、应答机制及单片机代码实现,帮助开发者高效利用该芯片减少IO占用,提升嵌入式系统设计效率。

tea88的博客 1085

内联函数,auto关键字,基于范围的for循环和空指针nullptr(c++基础语法)

1.内联函数 1.1概念 1.2特性 2.auto关键字 2.1类型别名思考 2.2auto简介 2.3auto的使用规则 2.4auto不能推导的场景 3.基于范围的for循环 3.1范围for的语法 3.2范围for的使用局限 4.空指针nullptr 4.1c98中的空指针值

m0_68641696的博客 275

【嵌入式Linux】EC20模块多运营商自适应PPP拨号实战:从IMSI识别到网络配置

本文详细介绍了在嵌入式Linux系统中,如何基于EC20 4G模块实现多运营商自适应PPP拨号。通过解析SIM卡的IMSI识别运营商,并动态配置对应的APN和拨号参数,结合AT指令交互与健壮的pppd脚本,解决了设备跨地域部署时的网络自动连接问题,提升了物联网设备的部署效率和稳定性。

fox11的博客 902

【C++杂货铺】内联函数、auto、范围for、nullptr

本文介绍了C++入门知识:内联函数、auto、范围for、nullptr

春人.的博客 5635

ISO18000-6B/6C(EPC C1G2)两个射频识别(RFID)标准协议的技术特点

目前读写器基本上是采用IMPINJ的R2000芯片和E710芯片开发,因为ISO18000-6B标准的现在应用很少,E710芯片已经不再支持ISO18000-6B标准,选择上就只有采用R2000芯片开发的UR6258超高频读写器以及手持机,这个在项目应用上需要留意。尽管ISO18000-6B标准具有上述优点,但也存在一些不足之处,特别是多标签阅读性能远远满足不了现在的应用需求,近年来发展停滞,绝大部分应用已经被ISO18000-6C(EPC C1G2)取代;#RFID# #物联网# #标准协议#

RFID设备与应用介绍 2156

【AutoSar CP】SoAd模块

比如对于特定的PDU,其PduId在程序编译时就确定了,但是在代码运行中,该PduId可能需要发送到不同的远端ip,这时就需要用SoAd来设置连接远端地址信息。SoAdSocketConnectionGroup(连接参数)SoAdSocketRoute(接收数据)SoAdRoutingGroup(开关)SoAdPduRoute(发送数据)

至道无难,唯嫌拣择。 1686

【与C++的邂逅之旅】--- 内联函数 && auto关键字 && 基于范围的for循环 && nullptr

这个函数不陌生吧,我们在实现排序算法时经常要用,可你是否想到 一个问题,但我们排序的数据量较大时,我们会反复调用这个函数,不断创建函数栈帧,这会是一笔不小的开销,那有什么方法解决呢? 那C++中是否有更好的解决方法呢?这里就来介绍我们的内联函数 我们转到反汇编观察下细节 可以观察到,如果在上述函数前增加inline关键字将其改成内联函数,在编译期间编译器会用函数体替换函数的调用那 debug 版本下,怎么设置呢?请看下图 inline是一种的做法,如果编译器将函数当成内联函数处理,在编译阶段,会用函数体替换

2301_79448270的博客 1334

CARAFE轻量级上采样算子详解:从原理到YOLOv5/YOLOv8实战魔改全攻略

摘要: 本文探讨了CARAFE(内容感知特征重组)上采样算子在YOLOv5/YOLOv8目标检测模型中的应用。传统上采样方法(如最近邻插值)易丢失细节信息,而CARAFE通过内容自适应机制和大感受野特性,动态生成上采样核,显著提升小目标检测性能。文章详细解析了CARAFE的算法原理(核生成与特征重组两步),并提供了在YOLOv5/YOLOv8中集成的代码实现与配置修改方案。实验表明,引入CARAFE后模型mAP提升约0.6%,且保持轻量级优势。此外,文中还总结了训练调优技巧、部署优化方案及常见问题解决方法,

FJN110的博客 917

【C++入门】内联函数 | auto关键字 | 范围for | 指针空值

C++入门 | 内联函数 | auto关键字 | 范围for | 指针空值

m0_74841364的博客 1573

013 PID参数整定:Ziegler-Nichols法

几年前在调试一台伺服压机,客户要求位置精度±0.01mm,响应时间小于50ms。我按照教科书上的经验值设了P=1.5,I=0.02,D=0.01,结果电机一启动就开始尖叫,位置超调直接干到0.3mm,然后开始震荡,像极了喝醉的舞者。现场工程师看我的眼神,就像在看一个刚毕业的实习生。那次之后我明白了一个道理:PID参数不是靠猜的,也不是靠经验公式硬套的。你需要一个系统的方法,而Ziegler-Nichols法就是那个让你从“瞎调”走向“有章可循”的起点。

m0_50546716的博客 101

滚雪球学Java(01):Java是什么?| 入门指南

🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!!

**My Coding Family** 626

C++入门5.内联函数,auto关键字,基于范围的for循环(C++11),指针空值nullptr(C++11)

C++基础入门的最后一篇,

nainaire的博客 1824

使用abagen工具箱获取基于脑区的基因表达矩阵

脑区模板定义了您感兴趣的脑区的空间位置。abagen提供了一些预定义的脑区模板,您可以选择使用,也可以使用自定义的脑区模板。它提供了一种简便的方式来获取基于脑区的基因表达矩阵。abagen需要使用Allen脑图谱数据来获取基因表达矩阵。您可以使用abagen内置的下载功能来获取这些数据。这就是使用abagen工具箱获取基于脑区的基因表达矩阵的详细步骤。通过按照上述步骤操作,您可以轻松获取并使用Allen脑图谱数据中的基因表达信息。一旦您加载了脑区模板,您可以使用abagen来获取基于脑区的基因表达矩阵。

web_bug407的博客 1326

【C++入门篇】学习C++就看这篇--->内联函数、auto关键字、范围for

内联函数使用 inline 修饰,编译时会在调用处展开,可提升效率,但编译器可能不采纳此建议,且声明定义不宜分离。auto 关键字(C++11)可自动推导变量类型,结合指针引用需注意用法,但不能作函数参数及直接声明数组。基于范围的 for 循环(C++11)语法简洁,用于遍历数组等,要求迭代范围确定且对象实现相应操作。nullptr(C++11)作为指针空值,较 NULL 更安全清晰。

熬夜秃顶中...... 1453

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

内联函数 auto 基于范围for循环 空指针nullptr

因为inline被展开,就没有函数地址了,链接就会 找不到。这就是为什么f(NULL)和f(0)的结果是一样,而nullptr解决了这个问题。要开辟空间消耗栈要花蛮多时间,而内联函数不要开辟和消耗栈,以空间换时间的处理方式。,编译时C++编译器会在调用内联函数的地方展开,没有函数压栈的开销,让我们一起学习C++知识叭,如果有错误,可以指点指点我噢。(和其他循环一样,可以用break停止,也可以用continue)了,导致在main中没有声明,所以报错。很像,都是在编译时调用的地方展开,

rwh04160416的博客 1924

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

C++基础————内联函数、auto关键字、范围for循环、指针空值nullptr

1、内联函数 2、auto关键字 3、基于范围的for循环 内联函数 1.内联函数的基本概念 以inline修饰的函数叫内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数压栈的消耗,以提升程序运行的效率。 内联函数的特点 1.inline是一种以空间换时间的做法,省去调用函数的的开销,所以代码过长或者有循环和递归的函数不适合使用作为内联函数。 2.inline对于编译器只是一种建议,如果定义为inline的函数体内有循环或递归等等,编译器会自动优化,优化时会忽略掉内联。 3.inlin

Akun_H的博客 1055

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【 C++入门 】内联函数、auto关键字、指针空值nullptr

目录 1、内联函数 概念 特性 经典面试题 2、auto关键字(C++11) auto简介 auto的使用细则 auto不能推导的场景 auto的实际应用价值 3、基于范围的for循环(C++11) 范围for的语法 范围for的使用条件 4、指针空值nullptr(C++11)...

bit_zyx的博客 1101

【C++入门】内联函数、auto关键字(C++11)、范围for、nullptr

文章讲解了内联函数、auto关键字、范围for、指针空值nullptr等C++基础知识。

大米饭的记录册 2086

C++入门(4)内联函数、auto关键字、范围for、nullptr

内联函数、auto关键字、范围for、nullptr

wangtianTTT的博客 1927

内联函数|auto关键字|范围for的语法|指针空值

使用auto修饰的变量,是具有自动存储器的局部变量,但遗憾的是一直没有人去使用它,大家可思考下为什么?C++11中,标准委员会赋予了auto全新的含义即:auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得return 10;auto b = a;//auto e;无法通过编译,使用auto定义变量时必须对其进行初始化return 0;【注意】

2301_79811170的博客 1273

【C++干货基地】揭秘C++11常用特性:内联函数 | 范围for | auto自动识别 | nullptr指针空值

变量还能自动识别类型?C++11 的这些新语法你必须掌握让你的C++之旅快速打通任通二脉!

鸽芷咕的博客 2965

【哇! C++】内联函数、auto关键字、基于范围的for循环、指针空值nullptr

内联函数、auto、范围for、指针空值

jp_yc的博客 624

【C++基础四】内联函数和auto关键字

被inline修饰的函数被称为内联函数编译器会在编译时将内联函数展开展开后,没有函数调用建立栈帧的开销内联函数可以提升程序运行效率int main()return 0;从函数的反汇编代码可得知,调用一个函数,开辟栈帧时需要call指令内联函数:可以看到编译器直接将add函数内容放在了主函数里注意:debug模式下需要设置才能看到内联函数的反汇编。

2201_75570391的博客 773

【C++入门(下篇)】C++引用,内联函数,auto关键字的学习

C++引用,内联函数和auto关键字学习

m0_56069910的博客 1411

C++入门(二)“内联函数inline”,“关键字auto”,“范围for”,“指针空值nullptr”

在早期C/C++中auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量,但遗憾的是一直没有人去使用它。C++11中,标准委员会赋予了auto全新的含义即:auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。当在同一行声明多个变量时,这些变量必须是相同的类型,否则编译器将会报错,因为编译器实际只对第一个类型进行推导,然后用推导出来的类型定义其他变量。// 该行代码会编译失败,因为c和d的初始化表达式类型不同。

BoJerry777的博客 1044

更易理解的C++入门下(C++关键字、引用、内联函数、auto关键字、基于范围的for循环、指针空值nullptr)

更易理解的C++入门知识,囊括C++关键字、引用、内联函数、auto关键字、基于范围的for循环、指针空值nullptr

. 1715
上一篇: 引用(李逵?李鬼!)
下一篇: 类和对象——开始步入正轨
宴之敖者、
博客等级 码龄4年 131粉丝 45原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值