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

简介: 竟然有人如此解释关键字中的static

目录

👋前言

😍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改变外部链接属性。好啦,就到这里啦,希望各位看官老爷给个一键三连哦 😘

目录
相关文章
|
消息中间件 存储 负载均衡
|
存储 人工智能 监控
AI推理
AI推理
546 1
|
弹性计算 运维 安全
阿里云无影云电脑详细介绍_使用_价格_优势_功能_特性
什么是阿里云无影云电脑?无影云电脑(原云桌面)是一种快速构建、高效管理桌面办公环境,无影云电脑可用于远程办公、多分支机构、安全OA、短期使用、专业制图等使用场景,阿里云百科分享无影云桌面的详细介绍、租用价格、云电脑的优势、使用场景、网络架构、无影云电脑与云服务器的区别以及关于无影云电脑的常见问题解答FAQ
898 0
|
弹性计算 对象存储 CDN
阿里云ECS服务器按固定带宽和按使用流量怎么选?
2023阿里云ECS服务器按固定带宽和按使用流量怎么选?阿里云百科以北京地域为例,按固定带宽计费1M带宽一个月23元,按使用流量计费1GB流量0.8元,如果云服务器带宽使用率低于10%,那么首选按使用流量计费,如果带宽实际利用率较高的话,按固定带宽计费更划算一些
1085 0
阿里云ECS服务器按固定带宽和按使用流量怎么选?
|
弹性计算 虚拟化 异构计算
分享阿里云服务器GPU实例租用价格表明细
分享阿里云服务器GPU实例租用价格表明细,阿里云GPU服务器租用价格表包括包年包月价格、一个小时收费以及学生GPU服务器租用费用,阿里云GPU计算卡包括NVIDIA V100计算卡、T4计算卡、A10计算卡和A100计算卡,GPU云服务器gn6i可享受3折优惠,阿里云百科分享阿里云GPU服务器租用价格表、GPU一个小时多少钱以及学生GPU服务器收费价格表
492 0
|
弹性计算 应用服务中间件
阿里云学生服务器购买流程与学生认证条件详解!
本文汇总学生购买阿里云服务器以及其它云产品优惠,阿里云的云翼计划,是阿里云针对在校学生扶持的一项优惠活动,只需9元即可购买阿里云服务器,而且云服务器配置不低,足够应用个人博客,展示网站等低性能场景!下面笔者为您详细解答!
24838 1
阿里云学生服务器购买流程与学生认证条件详解!
|
运维 安全 Cloud Native
开发者测评:阿里云 ACR 与其他的镜像仓库到底有什么不同?
为了帮助更多开发者了解容器镜像服务 ACR 的功能、使用方式和产品体验,阿里云容器镜像 ACR 面向广大开发者招募产品测评团,发布关于 ACR 的原创测评内容。活动正式展开仅一周的时间,已有数十位开发者发布他们对于 ACR 的使用体验。
开发者测评:阿里云 ACR 与其他的镜像仓库到底有什么不同?
|
机器学习/深度学习 编解码 自然语言处理
如何通过DCGAN实现动漫人物图像的自动生成
背景基于生成对抗网络(GAN)的动漫人物生成近年来兴起的动漫产业新技术。传统的GAN模型利用反向传播算法,通过生成器和判别器动态对抗,得到一个目标生成模型。由于训练过程不稳定,网络难以收敛,导致生成的图像缺乏多样性和准确性,甚至会产生模式崩溃。本文基于深度学习,参考相关实战项目pytorch-book,学习网络的训练方法,采用经过标准化处理和分类的动漫人物面部图像知乎用户何之源分享的素材,训练DC
|
大数据 Docker Python
Docker 安装 Python
欢迎关注大数据和人工智能技术文章发布的微信公众号:清研学堂,在这里你可以学到夜白(作者笔名)精心整理的笔记,让我们每天进步一点点,让优秀成为一种习惯! 方法一、通过 Dockerfile 构建 创建Dockerfile 首先,创建目录python,用于存放后面的相关东西。
3678 0
|
UED CDN 内存技术
PCDN实现flash无延时直播的技术原理与优点
PCDN是以P2P技术为基础,通过挖掘利用边缘网络海量碎片化闲置资源而构建的内容分发网络,它具有低成本、高品质的特点,十分适用于视频直播这一业务场景。针对直播中延时的情况,PCDN也进行了一系列优化,近期上线了flash无延时直播方案,下面我们将来介绍下无延时直播方案的技术原理和实现。
5358 0