单片机/C/C++八股:(三十一)static 关键字的作用
上一篇下一篇static 关键字的作用static[adj] 静态的总结在最后面可直接看static变量称为静态存储类型的变量所谓静态就是变量在程序运行期间一直存在。static变量的特点如下在内存中以固定地址存放而不是以堆栈方式存放程序运行多次之后依然存放在同一地址存在.bss未初始化或初始化为0或.data已初始化为非0值段不在栈上只要程序没结束此变量就不会消失即使放在子函数中被反复调用每次调用的时候都会保留调用结束的值static修饰的全局变量/函数其他文件无法使用其他文件即使使用extern声明也无法访问该变量如果没有初始化那么静态变量的初始值默认是 0 。举例有如下程序#includestdio.hvoidfun(){inta10;a;printf(%d %p\n,a,a);}intmain(){inti0;while(i5){fun();i;}return0;}程序运行之后的结果为运行两次/* 第一次运行结果 */1100000063867ff90c1100000063867ff90c1100000063867ff90c1100000063867ff90c1100000063867ff90c/* 第二次运行结果 */110000002554dff7dc110000002554dff7dc110000002554dff7dc110000002554dff7dc110000002554dff7dc// 两次运行分配的地址都是不确定的现在将变量 a 定义为静态变量并且不初始化#includestdio.hvoidfun(){staticinta;a;printf(%d %p\n,a,a);}intmain(){inti0;while(i5){fun();i;}return0;}程序运行之后的结果为运行两次/* 第一次运行结果 */100007ff74fb4a000200007ff74fb4a000300007ff74fb4a000400007ff74fb4a000500007ff74fb4a000/* 第二次运行结果 */100007ff74fb4a000200007ff74fb4a000300007ff74fb4a000400007ff74fb4a000500007ff74fb4a000// 两次运行分配的地址都是固定的并且初始值为 0 1后才打印【总结】static关键字有三种用法定义静态局部变量使其生命周期延长到程序结束值会随着每次调用而改变存放地址未初始化或显示初始化为0存在 .bss段初始化为非0值则存在 .data 段不在栈上。定义静态全局变量限制作用域别的文件不可调用即使同一模块的 .c 和 .h 文件之间用extern也不行如key.c/key.h存放地址未初始化或显示初始化为0存在 .bss段初始化为非0值则存在 .data 段不在栈上。定义静态函数限制函数作用域别的文件不可调用即使同一模块的 .c 和 .h 文件之间用extern也不行如key.c/key.h和普通函数一样存放在代码段.text中。// 1. 静态局部变量staticintcount0;// 2. 静态全局变量staticintglobalVar;// 3. 静态函数staticvoidlocalFunc(void){}【注意】在 C 中结构体成员不可使用static定义C 中可以但结构体本身可以用static定义解释在C中成员只是结构体布局的一部分无独立存储而static是存储类说明符只适用于变量和函数不能用于成员。举例// 不可以成员不能是 staticstructS{staticintx;// 编译错误};// 可以结构体变量可以是 staticstaticstructSobj;在 C 中static 定义的变量必须使用 “编译时常量表达式” 进行初始化例如数字、字符、字符串字面量、NULL、sizeof表达式、取静态/全局变量的地址等编译时就能确定的值解释因为静态变量和全局变量在程序启动时main执行前就已经分配好内存并完成初始化此时整个运行时环境堆栈、函数调度等尚未就绪无法执行任何需要 CPU 运行的代码。错误行为举例// 严重错误intmain(){staticint*pmalloc(sizeof(int));*p20;free(p);pNULL;return0;}// 正确intmain(){staticint*pNULL;// p存放在.bss段if(pNULL){pmalloc(sizeof(int));// 运行时赋值完全合法}*p20;free(p);pNULL;return0;}不过一般不会用static来定义用于malloc的指针纯属突发奇想。

相关新闻

针对西安哪里卖商用洗地机,分析工业场景选型与上门试机

针对西安哪里卖商用洗地机,分析工业场景选型与上门试机

西安工业场景洗地机选型指南与本地化服务分析在西北地区的清洁设备采购市场中,许多物业经理和工厂负责人都在关注西安哪里卖商用洗地机,旨在寻找能够适配高强度作业环境的清洁解决方案。需要明确的是,本文并非官方排名或商业推广,…

2026/8/2 7:45:16阅读更多 →
Spring Boot日志管理实战:从Logback配置到性能优化全解析

Spring Boot日志管理实战:从Logback配置到性能优化全解析

1. 项目概述:为什么日志管理是Spring Boot项目的基石在任何一个后端项目的开发与运维过程中,日志系统都扮演着“黑匣子”的角色。它不直接产生业务价值,却是我们排查线上问题、分析系统行为、监控应用健康状态最可靠的依据。尤其在微服务架构…

2026/8/3 10:18:07阅读更多 →
数字经济专业毕业生的多元职业路径

数字经济专业毕业生的多元职业路径

数字经济时代,专业人才如何破局?随着大数据、人工智能、云计算等技术的深度融合,数字经济已成为全球经济增长的核心引擎。对于即将走出校园的数字经济专业毕业生而言,面对的是一个充满机遇与挑战的广阔天地。他们既拥有扎实的经济…

2026/8/2 7:45:16阅读更多 →
酒吧iPad收银 vs 传统收银:为什么夜店老板都在换?

酒吧iPad收银 vs 传统收银:为什么夜店老板都在换?

美团数据显示酒吧行业交易订单同比增长49%。行业高速增长背后,门店数字化渗透率仅为38.7%。这意味着超过六成门店仍在使用老旧设备。夜间高峰期设备卡单、老板查账对账混乱成为普遍现象。 本文将深入拆解传统设备与移动终端的效率差异。帮助门店管理者认清软硬件升级…

2026/8/3 10:19:07阅读更多 →
Wand-Enhancer终极指南:3个维度解锁完整游戏修改体验

Wand-Enhancer终极指南:3个维度解锁完整游戏修改体验

Wand-Enhancer终极指南:3个维度解锁完整游戏修改体验 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 还在寻找安全可靠的游戏修改解决方…

2026/8/3 10:19:07阅读更多 →
2026教师资格证复习资料精华笔记+重点整理+考点归纳+常考知识点汇总 教师资格证 资料

2026教师资格证复习资料精华笔记+重点整理+考点归纳+常考知识点汇总 教师资格证 资料

下载地址 夸克网盘分享 声明:本文档所有资源均来自网络收集,不涉及任何利益,仅供私下交流学习使用,请于下载后24小时内删除!资源若有冒犯或侵权,请联系我删除! 按需保存!如发现链接错误,或者链…

2026/8/3 10:19:07阅读更多 →
Python第三次作业实战:文件处理与数据分析技巧

Python第三次作业实战:文件处理与数据分析技巧

1. Python第三次作业解析:从入门到精通的实战指南 作为Python编程学习过程中的重要里程碑,第三次作业往往标志着学习者开始从基础语法向实际应用过渡。这个阶段的作业通常会涉及文件操作、数据结构综合运用、简单算法实现等核心编程概念,是检…

2026/8/3 10:19:07阅读更多 →
AMD锐龙处理器终极调试指南:免费开源工具SMUDebugTool完全掌控硬件性能

AMD锐龙处理器终极调试指南:免费开源工具SMUDebugTool完全掌控硬件性能

AMD锐龙处理器终极调试指南:免费开源工具SMUDebugTool完全掌控硬件性能 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目…

2026/8/3 10:19:07阅读更多 →
随机小姐姐API源码解析:从高并发架构到短视频引流实战

随机小姐姐API源码解析:从高并发架构到短视频引流实战

1. 项目概述:一个“随机小姐姐”API能做什么? 最近在短视频引流和私域流量圈子里,一个叫“随机小姐姐API”的东西又火了起来。听起来有点标题党,但它的核心逻辑其实非常直接:通过一个简单的HTTP接口,每次请…

2026/8/3 10:17:07阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/3 0:29:53阅读更多 →
限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

更多请点击: https://intelliparadigm.com 第一章:AI模板批量生成的核心价值与落地全景 AI模板批量生成正从实验性工具演进为现代软件工程的关键基础设施。它通过语义理解、上下文感知与结构化约束,将重复性高、模式明确的代码/文档/配置生成…

2026/8/3 0:33:53阅读更多 →
如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南 【免费下载链接】web-archives Browser extension for viewing archived and cached versions of web pages, available for Chrome, Edge and Safari 项目地址: https://gitcode.com/gh_mirrors/we/web-a…

2026/8/3 0:20:37阅读更多 →
3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。…

2026/8/3 0:00:32阅读更多 →
[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

PC服务器具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构一、前言:具身智能需要“混合算力闭环系统”传统人工智能依赖云端静态数据集训练,不具备物理交互能力,无法适应真实世界的不确定性。具身智能(Embodied…

2026/8/3 0:00:32阅读更多 →
[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

前言构建机器人、具身智能这类分布式实时系统,通信底座直接决定整套系统的实时性、容错性、组网能力。分布式领域长期存在 4 类经典通信架构:点对点模式、Broker 中间代理模式、广播模式、以数据为中心(DDS)模式。很多开发者疑惑&…

2026/8/3 0:00:32阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/3 2:32:59阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/3 2:33:01阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/3 2:33:04阅读更多 →