震惊!竟然有人如此解释关键字中的static

news2025/1/11 19:43:33

🤩:大家好,我是paperjie,感谢你阅读本文,欢迎一建三连哦。

🥰:这里是C专栏,笔者用重金(时间和精力)打造,基础知识一网打尽,希望可以帮到读者们哦。

😘:不要998,只要一件三连,三连买不了吃亏,买不了上当(写作不易,求求了💓)。


目录

👋前言

😍static的作用

🤩修饰局部变量

🥳修饰全局变量

😎修饰函数

🫠总结


👋前言

在C专栏里,会有对C中一些重要的知识详细概括与分析,且还会对一些题目进行展开讲解,请各位看光敬请期待哦!

😍static的作用

static在C语言中是用来修饰变量与函数的。它具体有三个用法,1修饰局部变量,成为静态局部变量。2修饰全局变量,成为静态全局变量。3修饰函数,称为静态函数。

🤩修饰局部变量

static修饰局部变量,是局部变量的储存位置改变了,是它的生命周期变长了,但作用域没改变。对于上面这句话可以通过画图和代码很好的理解清楚,话不多说,直接上图:

通过结果都是1,我们可以发现没有用static局部变量j一出局部范围就销毁了,下一次循环上来还是0,所以局部变量j的生命周期还在test()这个局部范围里,并没有改变。

通过结果发现j在不断增加,我们可以发现是使用static后j的生命周期变长了,出了test()的范围并不会销毁,j的值很好的延续下去了。

看到这里,相比很多看官老爷会对改变变量的储存位置这个说法感到疑惑叭,在这里就画图给大家解释。看完这个图大家就更深层次理解了叭,🤪没使用static时,j是在栈区储存的局部变量,遵循栈区变量的特点,出了作用域就销毁。 🤪而使用static后j就变成了静态变量,就在静态区中,遵循静态区变量的特点,程序结束才销毁。

🥳修饰全局变量

全局变量具有外部链接属性,在其他源文件中依然可以使用。but 用static修饰全局变量的话,就会改变全局变量的链接属性,使外部链接链接属性变成内部链接属性,只能在自己所在的源文件中使用。

未使用static修饰a:

使用static修饰a:发现编辑器直接报错了,a在test.c这个源文件里无法使用。

😎修饰函数

函数有外部属性,在别的原文件里也能使用,但是在被static修饰后只能在自己所在的原文件里使用,外部属性变成内部属性。

 未使用static:

 使用static:使用后直接报错,无法解析外部符号add这个函数,因为它的外部属性变成了内部属性。


🫠总结

static这个关键字还是有一些作用的,比如你把这份代码想卖给别人,但是又不想别人知道怎么实现的,就可以加上static改变外部链接属性。好啦,就到这里啦,希望各位看官老爷给个一键三连哦 😘

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/429330.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

工作中使用即时通讯软件有什么好处?

以前,即时通讯被认定为是一个专供个人使用的通信工具,即时消息软件不仅用于简化通信和快速响应,而且还用于文件共享和信息更新,它可帮助公司中的员工进行沟通、满足需求并实现目标。在即时通讯的帮助下,员工无需离开办…

交互式shell脚本编程2

当你在终端环境下安装新的软件时,你可以经常看到信息对话框弹出,需要你的输入,比如:RHEL/CentOS自带的setup,对话框的类型有密码箱、检查表、菜单等等。他们可以引导你以一种直观的方式输入必要的信息,使用…

3d可视化精炼数字工厂互动大屏展示提高企业竞争力

随着各种新兴技术的不断崛起和进步,结合云计算、5G通信、物联网等技术突破数据孤岛,加速炼钢厂整个行业的转型升级已成为行业的大趋势。 传统的维修场景中,一线员工的双手难以得到解放,一线工作数据难以收集、保存、输出。一辆汽车…

leetcode刷题(4)

各位朋友们,大家好。这两天我将为大家分享我在学习栈的过程中遇到的题目,我们一起来看看。 文章目录逆波兰表达式求值题目要求用例输入提示做题思路代码实现c语言实现代码Java语言实现代码有效的括号Java代码实现逆波兰表达式求值 leetcode之逆波兰表达…

Python基于机器学习实现的股票价格预测、股票预测源码+数据集,机器学习大作业

Feature与预测目标的选取 选择的feature: 开盘价最高成交价最低成交价成交量 选择的预测目标: 收盘价 因为股票价格的影响因素太多,通过k线数据预测未来的价格变化基本不可行,只有当天之内的数据还有一定的关联,故feature与target都选择的…

Oracle daily maintenancy-high active sessions

文章目录1.About check_mk metric:ORA_ORCL_Active_Session2.Solution2.1get the total number of active concurrent sessions2.2 the possible reason for this:2.2.1.High connection for normal behavior that happens occasionally2.2.2.resource competition1.About chec…

CentOS7---部署LNMP数据存储到redis

一、部署LNMP及redis 1、部署LNMP,需要将 tengine-2.2.0.tar.gz 拷贝到虚拟机的 /root 目录下 步骤一:安装nginx 源码安装相关软件包 # pcre-devel做正则匹配,zlib-devel做数据压缩 [roottemplate ~]# yum -y install gcc pcre-devel zlib-de…

迅为RK3588核心板平台新增工业级方案

迅为基于瑞芯微RK3588平台,提供商业级、工业级和国产化核心板,工业级板卡温度可达-40度到85度,国产化板卡从内存,存储等每一个元器件全部采用国产物料。不同板卡,满足各个行业需求。 iTOP-3588核心板参数 CPU &#x…

汉诺塔问题--C语言实现

魔王的介绍:😶‍🌫️一名双非本科大一小白。魔王的目标:🤯努力赶上周围卷王的脚步。魔王的主页:🔥🔥🔥大魔王.🔥🔥🔥 ❤️‍&#x1…

算法:什么是队列 用两个栈实现一个队列

题目 用两个栈实现一个队列。 队列、栈是一类,都是抽象模型 数组、链表是一类,都是具体实现 队列 逻辑结构,抽象模型,可以用任何语言来实现 先进先出add、delete、length 用数组来模拟 const queue [] // 入队 queue.push(…

Python实现哈里斯鹰优化算法(HHO)优化BP神经网络回归模型(BP神经网络回归算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 2019年Heidari等人提出哈里斯鹰优化算法(Harris Hawk Optimization, HHO),该算法有较强的全…

MySQL数据库的操作

MySQL数据库的操作 创建数据库 语法 create database [if not exists] db_name [create_specification,create_specification...]create_specification:[default] charactter set charest_name[default] collate collation_name 说明: []可选项 specification 特…

【智能座舱系】-智能座舱平台研究|各家主机厂都在使用的主流座舱软件平台

一、何为汽车智能化 以智能化和网联化的技术赋能车辆,实现车辆对复杂环境的有效感知和识别,实现对车辆与驾乘人员、对其他车辆、对其他基础设施的智能化交互。 二、智能的两大核心功能:智能化和网联化 智能化方面,汽车具备智能的人机交互,如语音、手势、图像及其他生物…

电脑开机无限重启,到了欢迎界面就黑屏重启

windows7系统,开机过程中,只要一过了四叶草,要么刚出来欢迎界面,要么还没出来就黑屏,然后重启,然后无限循环。。。 (经测试xp系统同样有效) 先尝试用方法1修复,若不行再用方法2。 方法1&…

【微服务中间件学习】redis基础及项目使用

背景 最近跟着大佬学习,发现之前都是一知半解,还是得系统学一下。 重温redis,有一下整理Redis是一种基于内存的高性能键值存储系统,它支持多种数据结构和持久化方式,并提供了许多高级功能,如发布/订阅、事…

Go项目布局建议

我们编写的 如果是Go 程序都是简单程序,一般由一个或几个 Go 源码文件组成,而且所有源码文件都在同一个目录中。但是生产环境中运行的实用程序可不会这么简单,通常它们都有着复杂的项目结构布局。弄清楚一个实用 Go 项目的项目布局标准是 Go …

21_I.MX6ULL_PWM背光实验

目录 LCD背光调节简介 相关寄存器 实验源码 LCD背光调节简介 正点原子的三个RGB LCD都有一个背光控制引脚,给这个背光控制引脚输入高电平就会点亮背光,输入低电平就会关闭背光。假如我们不断的打开和关闭背光,当速度足够快的时候就不会感觉到背光关闭这个过程了。这个正好可…

jmeter数据库连接6

1,准备资料1. 一个可用的数据库2.连接数据库需要的驱动 2,jmeter连接数据库3,发送插入语句请求4,发送查询语句请求5,发送删除语句请求6,对数据库进行压测本文永久更新地址: 1,准备资料 1. 一个可用的数据库 搭建一个…

笔试强训之【不要二和字符串转换为数字】

目录1.不要二1.1题目1.2解题思路1.3代码2.字符串转换为数字2.1题目2.2思路讲解2.3代码1.不要二 1.1题目 链接: link 描述 二货小易有一个W*H的网格盒子,网格的行编号为0-H-1,网格的列编号为0~W-1。每个格子至多可以放一块蛋糕,任意两块蛋糕…

加载美女图片之OpenCV 图像读取与显示

📖作者介绍:22级树莓人(计算机专业),热爱编程<目前在c++和openCv阶段>——目标Windows,MySQL,Qt,数据结构与算法,openCv&#xff0…