恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

C语言中的static

  • 首页
  • 资讯中心
  • /
  • C语言中的static

相关资讯

3步解锁:ArchivePasswordTestTool压缩包密码恢复终极指南 2026/8/1 2:29:44
2026企业400电话新趋势:从通话工具到数字化服务中枢的进化 2026/7/29 22:06:40
从论文到落地:mobilevitv2_050.cvnets_in1k在ImageNet-1k上的训练与优化 2026/7/29 22:06:40

最新资讯

Godot Orchestrator可视化脚本实战:从核心机制到避坑指南
ESP32-CAM开发实战:从环境搭建到图像处理优化全解析
分布式存储架构设计与一致性算法实践:从 Raft 状态机复制到 Split-Brain 防御
HNSW 向量索引为什么又快又准?M、efConstruction、efSearch 调优实战
无线网络CSMA/CA协议详解:从信道共享到冲突避免的完整机制
Unity SRP中VXGI全局光照系统:从原理到实现的完整指南

今日推荐

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案
分布式配置中心选型实战:Nacos与Consul在创业场景下的对比
MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

本周热门

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案
分布式配置中心选型实战:Nacos与Consul在创业场景下的对比
MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

C语言中的static

发布时间:2026/8/2 1:40:28
C语言中的static static是计算机高级语言中的关键字用于控制变量存储方式和作用域该关键字在不同编程范式中具有差异功能特征。本文主要讲述在C语言中的三大作用修饰局部变量延长生命周期修饰全局变量限制作用域修饰函数实现文件内私有化一、三个作用快速区分表修饰对象作用域存储位置初始化次数作用典型场景局部变量函数内仅当前函数内部全局数据段第一次调用函数后续调用保留上次的值生命周期延长统计函数调用次数累加多次计算结果、在函数间保持状态函数仅当前.c文件代码段无初始化文件私有文件内部的辅助计算函数、模块私有接口、不希望被外部调用的工具函数全局变量仅当前.c文件全局数据段程序启动1次作用域收缩生命周期不变模块内部的配置变量、临时全局变量避免全局命名污染二、修饰局部变量生命周期延长起初C语言引入static时为了表示退出一个块后仍然存在的局局变量普通局部变量存储在栈在函数结束时销毁static修饰后变量存储在静态数据区即全局数据段程序运行期间一直存在创建一次就可以了。voidtest(){staticintnum0;num;printf(test函数中num%d\n,num);}intmain(void){test();test();test();return0;}运行结果假如static去掉运行结果如下但是作用域依旧只能在当前函数内部访问外部无法读取当直接使用时会提示未定义三、修饰全局变量限制作用域随着发展static在c语言中获得第二种含义用来表示不能被其他文件访问的全局变量和函数。普通全局变量整个工程可访问static修饰后仅限当前源文件使用其他.c文件无法通过extern访问不能跨文件共享//文件a static int glo_var 10;externintglo_var;intmain(){printf(%d,glo_var);}当使用extern进行访问编译器报错如下当在本文件中使用static进行修饰的变量仍是遵循同名变量寻找最近的变量详见如下#includestdio.h#includewindows.h#includemath.hstaticintglo_var10;intsum(intglo_var,intglo_var0){glo_var;printf(sum函数里的glovar%d\n,glo_var);glo_var0;};intmain(){intglobal1;sum(glo_var,global);printf(main函数里的glo_var %d,glo_var);}运行结果全局变量使用static的好处避免命名冲突不同文件可定义同名static全局变量互不干扰防止误修改其他文件即使使用extern声明也无法访问该变量四、修饰函数实现文件内私有化static函数只能在定义它的源文件内调用其他文件无法访问。//10_test_function2.c文件创建如下函数staticvoidstatic_test(void){printf(这是一个静态函数);}voidpublic_test(void){printf(这是一个公共函数);}//10_test_function3.cexternvoidpublic_test(void);//extern void static_test(void);intmain(){public_test();//static_test();}运行结果好处避免链接冲突不同文件可定义同名static函数编译时不会报错隐藏实现细节辅助函数、工具函数用static修饰不暴露给外部使用典型的场景计数统计统计函数调用次数、故障触发次数状态缓存保存上一次硬件采集值、缓存时序数据单次初始化硬件只在第一次调用时初始化外设后续跳过初始化。五、知识拓展在面向过程的程序设计中static主要修饰变量和函数用于限制作用域或延长声明周期在面向对象的程序设计中static用于修饰类的数据成员和成员函数使其称为静态成员

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号