数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 123|回复: 2

这个静态变量,在这里有什么意义?

[复制链接]
发表于 5 小时前 | 显示全部楼层 |阅读模式
看了一下,没看明白,懂的朋友,帮忙解释一下功能。

多谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
发表于 5 小时前 | 显示全部楼层
有2个想法,第一,提取3次数据进行分析比较.第二,放弃前两次数据,只是让设备执行到第三次提取稳定的数据.
回复 支持 反对

使用道具 举报

发表于 1 小时前 | 显示全部楼层
在C语言中,函数内部的静态变量(static局部变量)具有以下核心用途和特性:

‌持久化存储‌
静态局部变量的生命周期跨越整个程序运行期,即使函数调用结束,其值仍会保留,下次调用时可继续使用
。例如用于统计函数调用次数:

c
Copy Code
void func() {
    static int count = 0;  // 只初始化一次
    count++;
    printf("调用次数: %d\n", count);
}
‌单次初始化‌
静态变量仅在第一次进入函数时初始化,后续调用直接使用之前的值
。普通局部变量每次调用都会重新初始化。

‌作用域限制‌
虽然生命周期是全局的,但作用域仍限于函数内部,避免污染全局命名空间


‌线程安全初始化‌
在多线程环境下,静态局部变量的初始化是线程安全的(C11标准保证)


‌默认零值‌
未显式初始化的静态变量会被自动初始化为0(数值型)或NULL(指针)



典型应用场景包括:

实现状态记忆(如生成唯一ID)

缓存频繁使用的计算结果

替代全局变量以减少耦合

构建单例模式(结合静态局部变量和指针)

与全局变量的区别在于:静态局部变量既保持了持久性,又通过作用域限制提高了代码安全性
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-8-22 18:33 , Processed in 0.062401 second(s), 5 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表