简述C++中static的几种用法

c++中static的用法详解 C 语言的 static 关键字有三种(具体来说是两种)用途: 1. 静态局部变量:用于函数体内部修饰变量,这种变量的生存期长于该函数。 int foo(){ static int i = 1; // note:1 //int i = 1; // note:2 i += 1; return i; } 要明白这个用法,我们首先要了解c/c++的内存分布,以及static所在的...... 阅读详情

1、修饰局部变量,只执行一次初始化,延长了局部变量的生命周期,在程序结束的时候才释放。

2、修饰全局变量,此变量只能在当前的文件中访问,其它文件不可访问,即使是extern也不行。(建议使用隐式命名空间)

3、修饰普通函数(非成员函数),只能在当前文件中访问,不可在其它文件中调用。

4、修饰成员变量,类的所有实体对象共享这个变量。

5、修饰成员函数,在该函数中只能调用静态变量和静态函数。

掌握C++中static关键字的用法 C++中的static关键字是一个非常强大的工具,它在多个方面对变量和函数的作用域、生命周期和链接属性进行控制。本章将简要介绍static关键字的概念和用途,为后续章节中更深层次的探讨奠定基础。全局变量是在函数外部定义的变量,它在整个程序的任何部分都可以被访问到。与局部变量不同,全局变量的生命周期贯穿整个程序执行过程,除非被显式地销毁或者程序结束。在全局变量前加上static关键字,就会限定该变量的作用域仅在定义它的文件内。也就是说,即使其他文件包含相同的头文件,他们也无法访问该变量。 阅读详情

相关推荐

GAMES101:MacOS作业环境搭建

查看gcc/clang的位置产看gcc/clang的版本1.1.2 安装cmake。

weixin_38844255的博客 717

C++ static用法总结

要理解static关键字在C++中的所有作用,首先要明白程序所使用的不同内存区域的作用。C++程序运行时使用三种内存,一种是static内存,还有一种是stack内存,以及heap内存(动态内存池)。

kupePoem的专栏 2877

Coze+剪映小助手实战:5分钟搞定视频草稿创建工作流(附常见错误排查)

本文详细介绍了如何利用Coze平台与剪映小助手,通过create_draft接口快速搭建自动化视频草稿创建工作流。文章从核心价值、零基础搭建步骤、运行验证到深度错误排查,手把手教你5分钟内实现视频项目参数预设的标准化与自动化,显著提升短视频创作与团队协作效率。

oil88的博客 549

static在 C++ 中的四种用法

但是注意,静态成员函数无法访问类的非静态成员变量,因为这些变量是与类的实例关联的,而静态成员函数不属于任何具体的类的实例。在这种情况下,我们不能直接传递一个非静态成员函数,因为非静态成员函数需要一个隐含的 this 指针,而我们在创建线程的时候不能提供这个 this 指针。上述代码不能正确运行,因为bar是一个非静态成员函数,而在startThread函数中,我们无法给出这样一个上下文。因为非静态成员函数需要一个对象的上下文(也就是this指针),而在这个例子中,我们并没有提供这样的上下文。

CFY1226的博客 3677

Lumerical INTERCONNECT 中的自相位调制 (SPM) 仿真实践指南

本文详细介绍了在Lumerical INTERCONNECT中进行自相位调制(SPM)仿真的实践指南。从SPM的基础物理原理出发,深入解析非线性薛定谔方程和克尔效应,到INTERCONNECT中NLSE波导元件的配置技巧,以及时域与频域中SPM效应的观测方法。文章还提供了常见问题排查和进阶联合仿真技巧,帮助用户高效完成从仿真到实测的校准过程。

weixin_42565652的博客 187

解决TextMeshPro在AB打包中的字体冗余问题:源码修改全记录

本文详细介绍了如何解决TextMeshPro在AB打包中的字体冗余问题,通过源码改造和工程实践优化Unity项目的性能。内容包括资源加载路径重构、AB打包策略优化及运行时加载方案,有效减少包体体积和构建时间,提升内存效率。

weixin_42558257的博客 185

细说C++(十六):static用法-全解析

static static修饰局部变量时,使得被修饰的变量成为静态变量,存储在静态区。存储在静态区的数据生命周期与程序相同,在main函数之前初始化,在程序退出时销毁。(无论是局部静态还是全局静态) 局部静态变量使得该变量在退出函数后,不会被销毁,因此再次调用该函数时,该变量的值与上次退出函数时值相同。值得注意的是,生命周期并不代表其可以一直被访问,因为变量的访问还受到其作用域的限制。 s...

GeniusIOTboy的博客 984

Android安全支付(1)-整体架构-keymint

(1)接口定义hardware/interfaces/security/keymint/aidl/android/hardware/security/keymint/IKeyMintDevice.aidl。keymint是keymaster v4之后的替代设计。所以android 15上最好采用keymint的接口进行硬件功能的对接。同时,我们会集成一款紫光的芯片。3.可以用keyStore.getKey()来获取存储在keyStore中的数据进行加密和解密。四、关于keymint的接口定义和具体实现。

Android系统开发-VR OS-系统安全隐私 1770

C/C++中static关键字用法总结

在使用关键字static的时候,我们需要注意一下几个原则:被static修饰的变量的存储位置都在静态区,且生命周期延长至整个程序运行结束。static具有隔离作用,被static修饰的全局变量和全局函数的作用域由全局变为当前文件。静态变量虽然具有全局变量的生命周期,但只能作用于自己的作用域。普通静态成员需要在类的外面进行初始化。静态成员函数不能调用类的非静态成员,包括非静态成员和非静态成员函数。

红军不怕远征难,万水千山只等闲 1496

扫地机器人自动回充技术大揭秘:红外、蓝牙、雷达哪种更适合你家?

本文深入解析扫地机器人自动回充技术的三种主流方案:红外、蓝牙和雷达/LiDAR,详细比较它们的原理、优缺点及适用场景。红外技术成本低但易受干扰,蓝牙穿透性好但精度随距离降低,雷达精度最高适合复杂环境。根据户型大小和家居环境,提供选购建议,帮助用户选择最适合自己家庭的自动回充方案。

weixin_29070721的博客 503

机器人示教器方案昆仑通态脚本实现( 三菱FX3U+昆仑通态3轴联动))

项目应用场景:最终客户需要自由的修改程序流程,如检测什么信号,多少时间,再进入下一步,轴定位轨迹可以自由修改,方便最终可以在不修改PLC程序的情况下,自由示教程序。3.指令数量可以自行添加,在内存足够的情况下,无限制,只需要在PLC框架里面写好每个指令执行的内容就可以了,不需要在程序里面重复写相同类容;4.模板有延时指令,输入指令,输出指令,伺服定位指令,焊钳控制指令,自动修磨指令,转矩模式指令,结束指令等(可自行添加);1.有类似示教器编程功能,可以任意位置插入指令,可以任意位置删除指令;

huanyuecuiyu的博客 970

【C++】const和static的用法

本文介绍了C++中const与static关键字的用法及其结合应用。const主要用于限制变量/对象的可修改性,包括修饰普通变量、指针、函数参数/返回值、类成员和对象等场景。static则用于改变变量/函数的存储周期或作用域,包括修饰全局变量、局部变量以及类成员变量/函数。两者的结合应用主要体现在"类的静态常量"(static const)上,用于定义类级别的共享且不可修改的常量。文章通过具体代码示例详细说明了各种用法,帮助读者理解这两个关键字的正确使用方式。

2402_88461821的博客 1536

在线考试题库抓取:Python 爬虫抓取各类在线考试平台题库和试题

通过这些技术,您可以抓取各类在线考试平台上的题库数据,进行数据分析、生成练习题集,甚至用于考试准备。为了演示抓取过程,本篇博客选择了两个常见的在线考试平台进行数据抓取:一个是教育考试平台(如“中小学题库”),另一个是职业考试平台(如“华图教育”)。对于这些网站,我们需要找到包含题库信息的页面,并分析每一页的 HTML 结构,从而定位到题目、选项、答案等数据。大多数在线考试平台的题库是分页显示的,因此我们需要遍历多个页面,抓取所有的题库数据。因此,我们需要设置合适的请求头来模拟真实的浏览器请求。

2201_76125261的博客 3438

C++ 中static的用法

不管是 C,C++,它们中都包含 static。当然这其中的用法及作用也是不一样的。下面主要介绍 static 在 C++ 中的用法: 要理解 static,就必须要先理解另一个与之相对的关键字,很多人可能都还不知道有这个关键字,那就是 auto,其实我们通常声明的不用 static 修饰的变量,都是 auto 的,因为它是默认的,就象 short 和 long 总是默认为 int 一样;我们通常声明一个变量: int a; string s; 其实就是: auto int a; auto s

qq_43169752的博客 4806

Camera2Demo

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

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

C++static_cast用法

本文主要讲解了C++中几种强制类型转换中的static_cast的常用情况,并对其中容易出错的情况进行了实验,对相应结果进行分析。

风拔萝卜的博客 2万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

C++里static的用法

static的全部用法   要理解static,就必须要先理解另一个与之相对的关键字,很多人可能都还不知道有这个关键字,那就是auto,其实我们通常声明的不用static修饰的变量,都是auto的,因为它是默认的,就象short和long总是默认为int一样;我们通常声明一个变量:   int a;   string s;   其实就是:   auto int a;   auto st

Silence的程序实验室 654

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

C++中static的用法总结

转载自:http://developer.51cto.com/art/201104/254141.htm 不管是C,C++,还是JAVA,它们中都包含static。当然这其中的用法及作用也是不一样的。下面主要介绍static在C++中的用法: 要理解static,就必须要先理解另一个与之相对的关键字,很多人可能都还不知道有这个关键字,那就是auto,其实我们通常声明的不用stati

好好学习 676

C++学习:static关键字的作用和用法

四大作用 作用1:隐藏。(static函数,static变量均可)当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。 作用2:保持变量内容的持久。(static变量中的记忆功能和全局生存期)存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static变量,只不过和全局变量比起来,static...

Lingyun 854

C/C++中static 的作用以及用法

C语言中与C++中static使用有所区别,C++中由于增加了对面向对象的支持,所有可以使用static在类内对成员变量及成员函数进行限定,但从实质上讲,static限定的变量都会在静态数据区占用空间,而不会在栈内开辟空间,所以使用sizeof(class)并不会计算静态成员变量所占内存。 C/C++中static用法 1)定义函数内部的静态变量,改变变量的存储期。 函数内部定义...

weixin_38182935的博客 680

cpp的static的实现

前言 学习自用,有错麻烦提一下 正文 static成员变量 static修饰的值会在静态区分配空间,是在编译时期就分配了空间,(那么在没运行时就占用了可执行文件的大小吧), 可以把static与全局变量作比较,实际上的实现也是像全局变量一样额外放一个地方,全局变量放在全局区,静态变量放在静态区局区,不同之处就在于static的类成员是指定只能类来访问的,相当于static成员变量做了访问限制的全局变量 static成员函数 不同于static的成员变量,static修饰的成员函数在代码区分配内

ptgood的博客 941

C++中static用法总结

1)C 语言的 static 关键字有三种: 1.静态局部变量; 2.静态全局变量; 3.静态函数 (注:对应于上面图片,static修饰普通变量分为静态局部和静态全局两种。静态全局变量和静态函数的作用类似,均只在本文件内可见,不能为其他文件所用,故其实也可以将静态全局变量和静态函数作为一类,而静态局部变量为另一类。) 2)C++ 语言的 static 关键字新增两种: 4.静态数据成员; 5.静态成员函数。 #重要知识点# 1) 静态局部变量的特点: 1.该变量在全局数据区分配内存(局部变量在栈区分

qq_32491021的博客 2067

c++中static的用法

1、static和const修饰类的成员函数 不可以同时用static和const修饰类的成员函数。C++编译器在实现const的成员函数的时候为了确保该函数不能修改类的实例的状态,会在函数中添加一个隐式的参数const this*。但当一个成员为static的时候,该函数是没有this指针的。也就是说此时const的用法和static是冲突的。 2、静态成员的特点: (1)static数据成员在...

qq_42247445的博客 1517

C++ 语法篇之 static 用法

这周的大部分时间都花了debug上,,在费了一番周折才debug成功之后发现原来是static局部变量搞得鬼。我意识到原来我对于static的用法理解地还不够透彻,所以想结合这个例子再总结一下。希望在今后的coding中,不在同一个地方跌倒。 下边是错误代码的示例: Class A{ int foo1(int a); }; int A::foo1(int a){ static int i = A_ARRAY[a]; // int i = A_ARRAY[a]; // 业务代码若

yixiwuha的博客 2321

C和C++中static的用法及友元

C和C++中static的用法 一、C语言中: static 修饰全局变量表示该变量只在本文件可用 static修饰局部变量,使得局部变量的生命周期的延长至程序结束 static修饰函数表示该函数只在本文件可用,不能被外部文件引用 二、C++中: static修饰类中成员变量与类中普通成员变量的区别 静态成员变量 普通成员变量 在类内定义时要加static修饰 不用加sta...

wolfGuiDao的博客 1785
上一篇: 一个C++实用的buffer类
下一篇: C++线程类封装实例
胡撸娃哈哈
博客等级 码龄12年 2粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值