C语言 基础知识之static(static是什么,static的好处,static的使用和作用)

C语言中static的主要作用 这种做法常用于需要保持状态或计数的场合,例如在函数被多次调用时跟踪特定事件的发生次数。这个行为展示了非静态局部变量(即自动变量)的典型特性:它们在每次函数调用时都会重新初始化,并且在函数调用结束时失去它们的值。是一个只在声明它的函数内可见的变量,且其值在函数调用之间会保持不变。函数时被重新初始化为其声明时的值。变量的值也不会丢失,而是在下一次函数调用时继续从上次的值开始计数。变量的一个典型用途,用于跟踪函数被调用的次数或保持其他类型的状态信息。关键字在C语言中的用法,特别是在函数内部定义静态变量的情况。 阅读详情

一、static是什么?

static是C/C++中的修饰符,可以用来修饰变量,也可以用来修饰函数。

二、static的好处是什么?

1、隐藏变量或函数、隔离错误,有利于模块化程序

在编程中,难免会用到全局变量,全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,全局变量在所有的源文件中都是有效的。如果希望全局变量仅限于在本源文件中使用,在其他源文件中不能引用,也就是说限制其作用域只在定义该变量的源文件内有效,而在同一源程序的其他源文件中不能使用,这时,就可以通过在全局变量上加static来实现,使全局变量被定义成一个静态全局变量。这样就可以避免其他源文件使用该变量、避免其他源文件因为该变量引起的错误。起到了对其他源文件隐藏该变量和隔离错误的作用,有利于模块化程序。

2、保持变量内容的持久性

有时候,我们希望函数中局部变量的值在函数调用结束之后不会消失,仍然保留函数调用结束的值。即它所在的存储单元不释放。这时,应该将该局部变量用关关键字static声明为静态局部变量。当局部变量被声明为静态局部变量的时候,也就改变了局部变量的存储位置,从原来的栈中存放改为静态存储区存放,全局变量也存放在静态存储区,静态局部变量与全局变量的主要区别就在于可见性,静态局部变量只在其被声明的代码块中是可见的。

三、static的使用和作用

1、静态全局变量

使用:全局变量前加static,修饰全局变量为静态全局变量。

作用:改变全局变量的可见性。静态全局变量的存储位置在静态存储区,未被初始化的静态全局变量会被自动初始化为0。静态全局变量在声明它的文件之外是不可见的,仅在从定义该变量的开始位置到文件结尾可见。

2、静态局部变量

使用:局部变量前加static,修饰局部变量为静态局部变量。

作用:改变局部变量的销毁时期。静态局部变量的作用域和局部变量的作用域一样,当定义它的函数或语句块结束的时候,作用域结束。不同的是,静态局部变量存储在静态存储区,当静态局部变量离开作用域后,并没有被销毁。当该函数再次被调用的时候,该变量的值为上次函数调用结束时的值。

3、静态函数

使用:函数返回类型前加static,修饰函数为静态函数。

作用:改变函数的可见性。函数的定义和声明在默认情况下都是extern的,但静态函数只在声明它的文件中可见,不能被其他文件使用。

4、类的静态成员

使用:类成员前加static,修饰类的成员为类的静态成员。

作用:实现多个对象之间的数据共享,并且使用静态成员不会破坏封装性,也保证了安全性。

5、类的静态函数

使用:类函数前加static,修饰类的函数为静态函数。

作用:减少资源消耗,不需要实例化就可以使用。

C语言中static的作用及C语言中使用静态函数有何好处 在C语言中,static的作用有三条:一是隐藏功能,二是保持持久性功能,三是默认初始化为0。本文重点给大家介绍C语言中static的作用及c语言中使用静态函数有何好处,对本文感兴趣的朋友一起看看吧 立即下载

相关推荐

SECS/GEM协议中的关键指令详解:从S1F1到S9F9的完整指南

本文详细解析了SECS/GEM协议中从S1F1到S9F9的关键指令,涵盖设备状态管理、控制诊断、报警处理等核心功能。通过实际案例和调试技巧,帮助开发者掌握半导体制造设备通信标准,解决SECS/GEM协议在实际工程应用中的通讯难题,提升生产线智能化水平。

weixin_26899659的博客 400

静态函数的好处

C语言中使用静态函数的好处:        静态函数会被自动分配在一个一直使用的存储区,直到退出应用程序实例,避免了调用函数时压栈出栈,速度快很多。       关键字“static”,译成中文就是“静态的”,所以内部函数又称静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件。  使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,

prideofme的博客 717

dify离线部署

以bge-m3为例,本地部署bge-m3首先在一台能连网的linux服务器上(部署有ollama)创建想要保存模型的文件夹编辑ollama.service,配置ollama模型的保存路径添加模型存储地址将models目录设置属主,必须做,否则ollama无法启动重新加载配置文件并重启ollama测试ollama 运行是否正常最后拉取 bge-m3可在/opt/LLMModels/bge_m3/models目录下看到拉取得模型使用tar命令压缩文件夹。

weixin_42538734的博客 3072

为什么要用static

本文主要介绍C/C++中的static,以及为什么要用static,别人的代码中有时会突然使用用static,看的一脸蒙圈,为什么要用static,我不用难道不行吗?对啊为什么呢?

m0_71489826的博客 1795

利用腾讯云轻量服务器快速搭建网站CDN

腾讯云的轻量最近在主机和站长中间可谓是占尽来风头,优秀的线路,低廉的价格使得越来越多的人开始使用腾讯云的轻量级服务器来部署应用。由于腾讯云轻量服务器的海外服务器电信走的是CN2GIA线路带宽30m挺适合做CDN的,我就记录一下如何利用腾讯云香港的轻量服务器搭建一个CDN。 购买服务器 首先选购服务器,最近腾讯云在做活动,力度很大国内备案用户可以选用国内的服务器最低128元/年,未备案的可以选用香港或者新加坡的服务器。 购买链接 服务器系统选Debian、Ubuntu、centos都可以 一键脚

demo_top的博客 2566

OCEAN 电路仿真

介绍利用 Cadence OCEAN 进行电路脚本仿真的方法

weixin_43249158的博客 4406

C语言中static的用法与作用

static对不同作用对象的不同作用介绍

qq_51508784的博客 560

EBS开发_离散工单创建API

--以下代码于20171213在TONY环境中实现 DECLARE     l_iface_rec    wip.wip_job_schedule_interface%ROWTYPE; --工单任务接口表     l_group_id     NUMBER;     l_returnstatus VARCHAR2(40);     l_errormsg     VARCHAR2(2000

蜗牛先生快跑的博客 2596

初识C语言——关键字static的作用

C语言关键字static的介绍,static修饰局部变量,static修饰全局变量,static修饰函数

m0_70980326的博客 8492

Cesium 入门

Viewer:主要窗口Cesium 展示三维要素内容的主要窗口,包含三维地球的视窗,还包含了一些基础控价const viewer = new Cesium.Viewer('div的ID',{ options可选参数 },包括图层)options可选参数animation: false, 隐藏动画效果timeline:false, 隐藏时间轴等等Scene:场景类,隐藏地球图层Entity:实体类。

虎康的博客 3670

【扣子AI开发】如何开发一个图像生成智能体?

【扣子AI开发】如何开发一个图像生成智能体,从创建到发布

tl437002770的博客 2428

C语言初阶-C语言中static的用法

目录 前言 1.static的定义 2.static修饰局部变量 2.static修饰全局变量 3.static修饰函数 总结: 前言 哈喽,大家好,我是大鹏,目前是一名大二的学生,今天给大家带来的是static的用法,希望大家给个关注和赞,有错误大佬还请指出,谢谢大家的喜欢! 1.static的定义 static代表静态的,被static修饰的全局变量、局部变量、函数都会存放在静态中,在此附上图片 在内存里有三个区,被static修饰的则被放在静态区这个位置 2...

qq_53283658的博客 3万+

基于RK3588的YOLOv11目标检测NPU加速系统设计与实现——模型转换(RKNN)、量化与板端部署全流程(含环境搭建与疑难解析)

而RK3588芯片则是一款性能强劲的边缘计算芯片,将YOLOv11部署在RK3588上,可实现本地化的智能检测应用,比如工业质检中的产品缺陷识别、安防领域的异常行为监测等。比如,优化模型的推理速度,可通过调整模型的输入尺寸、使用更高效的推理框架等方式实现;可以使用RK提供的量化工具来完成这一过程,按照工具的使用说明,对ONNX模型进行量化,生成适用于RK3588的模型文件。现在,你已经掌握了从环境搭建到模型部署的全流程,赶快动手实践,让YOLOv11在RK3588上绽放智能光彩,打造属于你的AI应用吧!

m0_71589036的博客 46

C语言static的使用

static作用(修饰函数、局部变量、全局变量) 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。 (1)先来介绍它的第一条也是最重要的一条:隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。 下面是a.c的内容 chara=...

linxi8693的博客 1万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

c语言中static的作用 举例,static什么意思c语言

Q1:C语言编程中“static”是什么意思?static 出现在不同的地方含义不抄同的。如果是在函数之外使用,表示该对像在此文件中是全局可访问的知,在文件之外是不可访问的。如果出现在函数内部,则表示该变量不是自动变量,它是一个可以初始化的变量(如果不进行道显式初始化,默认值是0)。改变了它的值以后,函数结束时它的值也会保留。Q2:C语言中static char是啥意思?static就是静态的意思...

weixin_28722339的博客 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

c语言staticint的作用,c语言中static是什么意思?作用是什么

c语言中static是什么意思?作用是什么发布时间:2020-04-30 10:07:02来源:亿速云阅读:290作者:小新今天小编给大家分享的是c语言中static是什么意思?作用是什么,相信很多人都不太了解,为了让大家更加了解static,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。static在c语言中是什么意思c语言中,static用来说明静态变量。1、如果是在函数外面定义...

weixin_42128676的博客 2万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

C 语言中 static 的作用

C 语言中 static 的作用

xiaozhi 7644

c语言中static的作用,它来了!!

static概述修饰局部变量修饰全局变量修饰函数 概述   提到static关键字,相信大家都不陌生,这是相对比较难以理解的一个关键字,相信各位也都能深深感受的到!   本篇文章将总结一下static这个关键字的三个作用。static关键字在c语言中比较常用,使用恰当能够大大提高程序的模块化特性,有利于扩展和维护。   但是对于c语言初学者,static由于使用灵活,并不容易掌握。本文将为大家介绍一下static的作用,如有写的不对的地方,请及时指出。 修饰局部变量   我们都知道,变量如果我们不直接给它赋

qq_46877337的博客 1843

static在c语言中的作用_C语言关键字 static 的用法

接上文:C语言的32个关键字C语言 static 关键字的常见用法有三种:用于局部变量的修饰符;用于全局变量的修饰符;用于函数的修饰符。1、用于局部变量的修饰符当 static 用于修饰局部变量时,通常是在某个函数体内,只能在该函数内被调用。这样定义的变量通常被称为局部静态变量,它的值不会因为函数调用的结束而被清除,当函数再次被调用时,它的值是上一次调用结束后的值。如下面这段代码所示,变量 x 是...

weixin_39977776的博客 2324

C语言中static作用

1,static修饰局部变量 在局部变量之前加上关键字static,局部变量就被定义成为一个局部静态变量。 特点如下: 1)存储区:由于栈变为静态存储区rw data,生存期为整个源程序,只能在定义该变量的函数内使用。退出该函数后, 尽管该变量还继续存在,但不能使用它;当static修饰局部变量时,可以达到改变局部变量生命周期的目的. 2)作用域:作用域仍为局部作用域,当定义它的函数或者语句块结束的时候,作用域随之结束。 void test() { static...

sunny的博客 2867

C语言中static函数

转载自: https://blog.youkuaiyun.com/cw616729/article/details/95003577 https://blog.youkuaiyun.com/keyeagle/article/details/6708077 1.含义: 定义为static的函数,作用域为本文件,它只能在定义该函数的源文件中使用。 2.好处 使用static的好处...

hhhhhyyyyy8的博客 2711

【C语言】函数定义时前加static 作用

C语言中函数定义时前加static 作用 1.作用 函数中加“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件。 2.好处 使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名,因为同名也没有关系。 3.根本原因 根本原因是C语言中同一个工程中不能有同名函数。 定义静态函数的好处: 其他文件中可以定义相同名字的函数,不会发生冲突 静态函数不能被工程内其他文件所用。 拓展:关于内联函数 内联函数是在函数的前面加“inline”,意思

dayou1024的博客 6852

【C语言】static和extern的作用

在之前的博客中,提到过static的三个作用,但是没有详细说明这三个作用的场景,现在回过头来记录一下。修饰函数修饰全局变量修饰函数内变量static还有一个隐藏的特性,即变量会被默认设置为0,因为静态区/全局区的内存区域在初始化的时候都是0。在C++的类和对象中,static还多了一个作用,即修饰C++类的成员变量或函数。被修饰的成员属于整个类,可以直接通过类的作用域来访问(前提是公有),这不是本文的重点。

慕雪华年的博客 1358

C语言中static关键字的作用

转载引用文章:原博主文章 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。 (1)先来介绍它的第一条也是最重要的一条:隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。 下面是a.c的内容 下面是main.c的内容 程序的运行结果是: A Hello 你可能会问:为什么在a.c中定义的全局变量a和函数msg能在main.c中使用?前面说过,所有未

qq_44764418的博客 1080

【C语言:static的奇妙】什么是static?static如何使用?static作用原理?

static的奇妙:什么是static、如何使用、作用原理

zjt_2002的博客 1926
上一篇: CC++ 飞机订票系统
下一篇: Java 208 道面试题:Java 基础模块答案
普通网友
博客等级 码龄4年 3126粉丝 192原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值