C语言中static的主要作用

在C语言中,static 关键字用于函数内部的变量定义有几个主要作用:

  1. 局部变量的生命周期延长:通常情况下,函数中的局部变量(如自动变量)仅在函数执行期间存在。但是,当局部变量被声明为 static 时,它的生命周期延长至程序运行期间。这意味着,即使函数执行完成,该变量的值也不会丢失,下次当该函数再次被调用时,该变量将保持上次执行结束时的值。
  2. 限制作用域:虽然 static 局部变量的生命周期为整个程序运行期间,但其作用域仍限制在声明它的函数内。这意味着它只能在这个特定的函数内被访问和修改。
  3. 默认初始化为零:如果没有显式初始化,静态局部变量会自动初始化为零(对于指针变量,会被初始化为 NULL)。

举个例子,定义 static uint8_t temp=0u; ,这意味着 temp 是一个只在声明它的函数内可见的变量,且其值在函数调用之间会保持不变。这里它被显式初始化为 0u(即0,u 表示无符号类型),但即使没有这个初始化,它也会默认为零。这种做法常用于需要保持状态或计数的场合,例如在函数被多次调用时跟踪特定事件的发生次数。

Talk is cheap, show the code. 当然,这里我用一个简单的示例,展示了 static 关键字在C语言中的用法,特别是在函数内部定义静态变量的情况。

这个例子中,我将创建一个函数,该函数包含一个 static 变量用于跟踪该函数被调用的次数。每次调用这个函数时,这个计数器都会增加,展示了 static 变量在函数调用之间是如何保持其值的。

#include <stdio.h>

void CounterFunction() {
   
   
    // 定义一个static变量
    static int count 
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值