存储持续性、作用域和链接性

C++中,存储持续性、作用域和链接性 阅读详情

关于内存的知识:c++使用3种(c++11中是4种)不同的方案来存储数据,这些方案的区别在于数据保留在内存中的时间。

  • 自动存储持续性:在默认情况下,在函数中声明的函数参数和变量的存储持续性为自动,作用域为局部,没有链接性,也就是说,在代码块和函数内部定义的变量只在该代码块和函数中起作用。c++有2种存储持续性为静态的变量。
  • 静态存储持续性:在函数定义外定义的变量和使用关键字static定义的变量的存储持续性都是静态的。他们在整个函数运行过程中都存在。c++有3种存储持续性为静态的变量。
  • 线程存储持续性:
  • 动态存储持续性:用new运算符分配的内存将一直存在,直到使用delete运算符将其释放或程序结束为止。这种内存的存储持续性为动态,有时候也被称为自由存储或堆。
1. 自动变量和栈

自动变量的数目随函数的开始和结束而增减,因此程序必须在运行时对自动变量进行管理,常用的方法是留出一段内存,将其视为栈,以管理动态变量的增减。

2.静态持续变量
  • 静态持续变量简介

和c语言一样,c++也为静态持续变量提供了3种链接性,外部链接性(可在其他文件中访问),内部链接性(只能在当前文件中访问),无链接性(只能在函数内部和代码块中访问)。编译器将分配固定的内存块来存储所有的静态持续变量,这些变量在程序运行期间将一直存在。另外,如果没有显示的初始化静态变量,编译器将把它们设置为0。

下面是创建3种静态持续变量的方式:

...
int global =1001;       //静态持续变量:外部链接性
static int one_file =50;//静态持续变量:内部链接性
int main()
{
    ...
}
void f1(int n)
{
    static int count=0;//静态持续变量:无链接性
    int i=1;
    ...
}
void f2(float m )
{
    ...
}
  • 静态持续变量的初始化

静态持续变量的初始化过程:首先,所有的静态变量都将被零初始化,而不管程序员是否显示地初始化了它。接下来,如果使用常量表达式初始化了变量,且编译器仅根据文件内容(包括被包含的头文件)就可计算表达式,编译器将执行常量表达式初始化。必要时,编译器将执行简单计算。如果没有足够的信息,变量将被动态初始化。

基于YOLOv5的仪表读数识别系统:从检测到识别的完整解决方案 随着工业自动化水平的不断提高,仪表读数识别技术在电力系统、石油化工、智能制造等领域发挥着越来越重要的作用。本文提出了一种基于YOLOv5的仪表自动读数识别系统,该系统能够有效区分指针式和数字式仪表,并实现高精度的读数识别。我们详细介绍了系统的整体架构、数据集构建、模型训练策略以及用户界面设计,并提供了完整的代码实现。实验结果表明,本系统在仪表检测和读数识别任务上均取得了优异的表现,为工业现场的自动化监控提供了可靠的技术支持。关键词:仪表读数识别;YOLOv5;目标检测;深度学习;工业自动化。 阅读详情

相关推荐

ICNN实现入侵检测的思路与源码(CIC-IDS-2017)

基于ICNN实现入侵检测,可用于现实网络

t1274171989的博客 8415

C++ -- 存储类型说明

存储持续性 : C++使用三种不同的方案来存储诗句(区别:数据保留在内存中的时间)作用域和链接性:作用域描述了名称在文件中的可见范围,例如:函数体重的变量可在函数中使用,但是不能在其他函数中使用。在文件中定义的函数定义之前定义的变量可在所有函数中使用。链接性描述了名称如何在不同单元之间共享。其中:链接性为外部的名称可在文件间共享。链接性为内部的名称只能由一个文件中的函数共享,自动变量名称没有链接性,因为他们不能共享。

turbolove的博客 720

手把手教你用LTspice仿真TVS二极管:从选型验证到波形分析全流程

本文详细介绍了如何使用LTspice仿真TVS二极管,从选型验证到波形分析的全流程。通过搭建仿真环境、核心参数验证和系统级防护策略,帮助工程师低成本评估TVS性能,优化电路设计。特别适用于电源设计和接口防护领域,提升工作效率和设计准确性。

weixin_29234239的博客 646

【C++】学习笔记四十五——存储持续性、作用域、链接性

存储持续性 自动存储持续性:在函数定义中声明的变量,作用域为局部,没有链接性 静态存储持续性:在函数外部定义的变量和使用static定义的变量 线程存储持续性:使用thread_local声明的变量 动态存储持续性:用new分配的内存 静态持续变量有三种链接性: 外部链接性(可在其他文件中访问):不在任何函数内声明 内部链接性(只能在当前文件中访问):不在任何函数内,用static声明 无链接性(只

buaadf的博客 1053

STM32f103--ADC配置

2.对于规则通道,选中EXTI线路11或TIM8_TRGO作为外部触发事件,可以分别通过设置ADC1和ADC2的ADC1_ETRGREG_REMAP位和ADC2_ETRGREG_REMAP位实现。注意: 在双ADC模式里,当转换配置成由外部事件触发时,用户必须将其设置成仅触发主ADC,从ADC设置成软件触发,这样可以防止意外的触发从转换。2.在某些双ADC模式中,在完整的ADC1数据寄存器(ADC1_DR)中包含了ADC1和ADC2的规则转换数据。通过设置ADC_CR2寄存器的ADON位可给ADC上电。

weixin_51864506的博客 5313

Delft3D从入门到实践:安装、编译与首次模拟指南

本文为Delft3D初学者提供了一份详尽的从零开始指南。内容涵盖软件获取、许可证申请、图形界面安装、核心计算内核的编译环境搭建与编译步骤,以及最终整合运行首个水动力模拟的全流程。重点解决了Windows系统下Delft3D安装与编译的常见问题,帮助用户快速上手这一开源水动力与泥沙输运模拟工具。

weixin_29303701的博客 538

(一一一)存储持续性、作用域和链接性

在之前,说过自动存储(随函数内声明而建立,函数消亡而消亡)、静态存储(全局都存在)、动态存储(一般是用new)。 但是,涉及到多文件的时候,存储类别如何影响信息在文件间的共享。 C++使用三种(C++11使用4种)不同的方案来存储数据,这些方案的区别就在于数据保留在内存中的时间。 自动存储持续性:在函数定义中声明的变量(包括函数参数)的存储...

weixin_34110749的博客 214

U8二次开发CO-基于Net8调用COM对象

本文章介绍的U8二次开发CO技术,就是基于微软COM组件技术,使用微软开源的编程框架Net6/7/8/9来调用U8的COM组件,完成基本的登录认证,工作流处理,数据库操作等。

pccai的博客 5501

C++ 存储持续性、作用域和链接性

变量的存储持续性、作用于和链接性

墨上烟雨 563

redhawk:使用rh_setup.pl产生gsr模板

必须加的option工具会在rh_setup.pl给出提示,按照要求填写即可,另外工具会把所有填写的输入文件和信息放到rh_setup.init文件中,拷贝这个文件可在任何平级运行目录下,直接rh_setup.pl产生gsr以及run sta/dyn/em的脚本。rhsetup.pl -top top_cell_name -vdd_nets VDD 1.2 VDD2 1.2 -vss_nets VSS -frequency 100e6 (100m是默认值)更多学习内容请关注「拾陆楼」知识星球。

m0_61544122的博客 1053

【赛题解析&命令脚本配置】2023年全国职业院校技能大赛GZ073网络系统管理赛项赛题第1套模块A:网络构建 & (五)无线网络配置+(六)出口网络配置-命令配置

【赛题解析&命令脚本配置】2023年全国职业院校技能大赛GZ073网络系统管理赛项赛题第1套模块A:网络构建 & (五)无线网络配置+(六)出口网络配置-命令配置

君逍遥o 408

C++中的存储持续性、作用域和链接性

会给变量分配存储空间;另一种是。

2301_80345648的博客 782

GStreamer Plugin之Gst-nvdewarper

支持三种投影类型 NVDS_META_SURFACE_FISH_PUSHBROOM, NVDS_META_SURFACE_FISH_VERTCYL 和NVDS_META_SURFACE_PERSPECTIVE_PERSPECTIVE。关于每个平面的NvDewarperSurfaceMeta参数(projection_type, surface_index, and source_id)以及内存中有效的矫正平面(num_filled_surfaces)包含RGBA格式的一帧的缓存。矫正后的RGBA格式。

pvmsmfchcs的博客 367

C++存储持续性、作用域和链接性

存储持续性决定数据保存在内存中的时间长度。有四种,自动存储持续性、静态存储持续性、线程存储持续性、动态存储持续性。 作用域描述名称在文件的多大范围内可见。有两种,代码块作用域、文件作用域。 链接性描述了名称如何在不同单元间共享。有两种,无链接性、内部链接性、外部链接性。 1 变量的自动存储持续性 默认情况下,在函数中声明的变量(包括函数参数)的存储持续性为自动的,作用域为局部,无链接性。 自...

asd1147170607的博客 315

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

老版QQ原生表情gif动态

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

C++变量的存储持续性、作用域和链接性

资料摘自《C++ Primer Plus》 存储持续性 1自动存储持续性:在函数定义中声明的变量(包括函数参数)的存储持续性为自动的。它们在程序开始执行其所属的函数或代码块时被创建,在执行完函数或代码块时,它们使用的内存被释放。 2静态存储持续性:在函数定义外定义的变量和使用关键字static定义的变量的存储持续性都为静态。(请注意)它们在整个运行过程中都存在。 3线程存储持续性(

afei198409的专栏 1473

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

存储持续性,作用域和链接性

自动存储持续性 概念:在函数定义中声明的变量(包括函数参数)的存储持续性为自动的。他们在程序开始执行其所属的函数或代码块时被创建,在执行完函数或代码块时,他们使用的内存被释放。 在默认情况下,函数中声明的函数参数和变量的存储持续性为自动的,作用域为局部的,没有链接性。当程序开始执行某函数的代码块时,将为该代码块内的变量分配内存,当函数结束时,这些变量都将消失(注意,执行到代码块时,将为变量分配内存,但其作用域的起点为其声明位置)。 若代码块的外部先声明了一个变量,内部随后声明了一个同名变量,则程序执行

qq_37071435的博客 323

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

存储持续性、作用域和链接性(C++)

存储数据的方案: C++使用三种(在C++11中是四种)不同的方案来存储数据,这些方案的区别就在于数据保留在内存中的时间。 自动存储持续性:在函数定义中声明的变量(包括函数参数)的存储持续性为自动的。它们在程序开始执行其所属的函数或代码块时被创建,在执行完函数或代码块时,它们使用的内存被释放。C++有两种存储持续性为自动的变量。 静态存储持续性:在函数定义外定义的变量和使用关键字static...

MoooLi的博客 752

掘根宝典之C++存储持续性,作用域和链接性(自动存储连续性,静态持续变量,关键字static,const的链接性,函数链接性,动态分配链接性)

代码块:由花括号括起的一系列语句如果在代码块里定义了变量,则该变量的存在时间和作用域将被限制在该代码块。话不多说,上例子int main()int a = 9;//结果是9//代码块int b = 8;//结果是8//结果是9//这不可以从上面这个例子得出,b的作用域被限制在它所在的代码块里,同时我们也发现在代码块外定义的变量a在内部代码块和外部代码块都是可见的那如果将内部的变量命名为a,使得代码块内部和外部有两个同名的变量,这时情况会如何呢?话不多说,上例子。

2301_80224556的博客 1684

C++学习笔记3——存储持续性、作用域和链接性

如果要在多个文件中使用外部变量,只需在一个文件中包含该变量的定义,但在使用该变量的其他所有文件中使用extern关键字进行声明。在代码块中用static限定符定义变量,则变量没有链接性,只能在代码块中使用,但在该代码块不运行时依然存在,因此在两次调用函数之间变量的值保持不变。默认情况下,函数中声明的函数参数和变量的存储持续性为自动,作用域为局部,没有链接性,即只能在函数(代码块)内访问。被多个文件包含也不会产生冲突。在代码块外部使用static限定符定义变量,该变量的链接性为内部,只能在当前文件中使用。

Ocean1994的博客 1064

c++学习笔记——存储持续性、作用域和链接性

一方面,在每个使用外部变量的文件中,都必须声明它;另一个方面,c++有“单定义规则”,变量只能有一次定义。为了满足这种需求,c++提供了两种变量声明。(1)一种是。

m0_68388605的博客 429

C++知识点 存储持续性、作用域和链接性总结

C++为在内存中存储数据提供了多种选择,可以选择数据保存在内存中的时间长度(存储持续性 storage duration)以及程序哪一部分可以访问数据(作用域 scope 和链接 linkage) 存储持续性 C++中有四种不同的方案来存储数据,这些方案的区别就在于数据保留在内存中的时间 **自动存储持续性(Automatic Storage Duration):**在函数定义中声明的变量(包括函数参数)在存储持续性上是自动的。它们在程序开始执行其所属的函数或者代码块时被创建,在执行完函数或代码块时,他们

EJoft的博客 774

C++学习笔记:存储持续性、作用域和链接性

存储持续性描述了变量时如何存储的;作用域描述了名称在文件(翻译单元)的多大范围内可见;链接性描述了名称如何在单元间共享。下面将分别从自动存储持续性,静态存储持续性,动态存储持续性三个方面介绍相关知识。

2401_86107325的博客 1375

C++存储持续性、作用域和链接性的学习

C++入门学习:存储持续性、作用域和链接性的学习

weixin_54706831的博客 219

C++PrimerPlus 第九章 内存模型和名称空间-9.2 存储持续性、作用域和链接性

C++的存储方案决定了变量保留在内存中的时间(存储持续性)以及程序的哪一部分可以访问它(作用域和链接性)。自动变量是在代码块(如函数体或函数体中的代码块)中定义的变量,仅当程序执行到包含定义的代码块时,它们才存在,并且可见。自动变量可以通过使用存储类型说明符register或根本不使用说明符来声明,没有使用说明符时,变量将默认为自动的。register说明符提示编译器,该变量的使用频率很高,但C++11摒弃了这种用法。

Hank_W 1249

C++存储持续性、作用域和链接性与名称空间

存储持续性 自动存储持续性:在函数定义中声明的变量(包括函数参数)的春初持续性为自动的。它们在程序开始执行其所属的函数或代码块时被创建,在执行完函数或代码块时,它们使用的内存被释放。C++有2种存储持续性为自动的变量 静态存储持续性:在函数外定义的变量和使用关键字static定义的变量的存储持续性都为静态。它们在程序运行的过程中都存在,C++有3种存储持续性为静态的变量 线程存储持续性(C++11):当前,多核处理器很常见,这些CPU可同时处理多个执行任务。这让程序能够将计算放在可并行处理不同线程中。如果

qq_45675910的博客 351
上一篇: 函数模板二
下一篇: 静态持续性、外部存储性
fh2627
博客等级 码龄10年 4粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值