当前位置: 首页 > news >正文

C++的第十五天笔记

静态持续性、内部链接性

使用static修饰全局变量时,这个变量的链接性就会变成内部的,即只允许当前源文件访问。

如果在两个不同的文件中定义两个名称相同的全局变量(即使省略extern),程序会报错,即使省略extern。因为其违反了单定义规则,但如果其中一个使用static修饰为静态变量,使用了static的文件会无视掉外部的同名变量。

静态存储持续性、无链接性

将static作用于局部变量,这样这个变量的存储持续性变为静态的,且只在其所在代码块内部可用(无连接性)。因此对函数的两次调用之间,该变量的空间不会被回收,数值不会被改变。

说明符和限定符

说明符的核心是指定变量或函数的属性。比如类型属性,用来指定数据类型,如:int。

存储说明符

用来指定变量/函数的存储位置、生命周期、链接属性。

auto(在C++11中不再是说明符)、register、static、extern、thread_local(C++11新增)、mutable。

在同一个声明中不能使用多个存储说明符,但thread_local除外,它可以和static和extern结合

限定符的核心是对变量或函数的使用规则进行限制,不改变其属性。

cv限定符

const、volatile。

mutable和const

被mutable修饰的成员变量即使在其所在的结构体(类)被const修饰也可以被修改

const是用来限制后面被修饰物的修改权限的关键字。在C++中(非C中)被const修饰的全局变量链接性默认是内部的,相当于同时使用了static。其意义是主要是为了避免多个文件中定义同名const全局变量时的链接冲突

头文件保护宏无法防止链接冲突。如果全局变量有外部链接性,头文件保护宏只保证每个编译期间只定义一次,但是链接阶段编译器会发现,多个文件中定义了同一个同名变量,违反单定义规则。

如果需要某个常量具有外部链接性,可以在const前使用extern覆盖其默认的内部链接性

{}中声明的常量,与变量一样,其作用域位于所处的{}之间。不必担心与其他地方定义的常量冲突。

函数和链接性

和C语言一样,C++不允许在函数内部定义函数。因此函数的存储持续性都是静态的(程序启动时分配内存,结束时释放内存)

在默认情况下,函数的链接性为外部。可以使用static将其修改为内部。与变量一致,使用了static的文件会无视掉外部的同名函数。

对于非内联函数,所有文件中只能包含其的一个定义,但内联函数不受影响(前提是同一个内联函数的每一次定义都相同)。

http://www.jsqmd.com/news/89671/

相关文章:

  • MouseTester:专业鼠标性能测试工具完整指南
  • [Linux] 手写轻量C++函数性能探查器:CPU占用率耗时
  • MsgViewer:解锁邮件查看新体验的跨平台神器
  • 突破极限!让Umi-OCR在Windows 7上重获新生的完美方案
  • 函数指针与指针函数
  • 固定Shape场景下Ascend C算子Tiling实现详解
  • 从零部署 OpenKM 文档管理系统:企业级文档管理实战指南
  • docker容器通过host.docker.internal访问宿主机的注意事项
  • [dx12显示图片] ImGui Learn Data Day 3
  • Nugget下载工具完整指南:极简高效的命令行文件获取方案
  • GridPlayer多视频同步播放器:新手快速上手指南
  • iStore插件中心终极指南:OpenWRT新手轻松安装与管理插件
  • 【PoW算法】
  • 原神帧率同步机制深度解析与性能优化实践
  • springboot整合kafka connect
  • 【专业指南】BetterNCM安装器完整教程:如何轻松管理网易云音乐插件生态
  • 智能防走失定位工具,核心功能,绑定家人手机,实时查看位置,设置安全区域,如小区,超出区域自动提醒,支持一键求救,应用场景,预防老人痴呆患者走失,家人随时掌握位置,放心又安心。
  • 【大模型预训练】19-分布式集群架构:GPU、TPU集群的拓扑结构与通信优化
  • 【ZAB协议】
  • 告别单选困境:Layui多选下拉框的优雅解决方案
  • tinySubFinder字幕下载
  • 基于SSM的在线药品销售系统【源码+文档+调试】
  • Mammoth.js实战指南:轻松实现Word转HTML的完整解决方案
  • DOCX.js终极指南:在浏览器中生成Word文档的完整解决方案
  • 两次数字电路模拟程序+课堂测验
  • 深圳|广州|东莞|昆明-茶饮培训课程哪家好|茶饮培训机构怎么选|新中式茶饮培训哪家好|茶饮技术培训|新式茶饮培训|中式茶饮培训课程——圣旺水吧 - 老百姓的口碑
  • 抖音无水印视频下载器:5分钟掌握高清保存技巧
  • 时序数据库
  • 原生 JavaScript 组件化开发:摆脱框架束缚的架构之道
  • 基于SSM的学生信息管理系统【源码+文档+调试】