c语言的关键字static,C语言static关键字

这篇博客探讨了C语言中静态变量的三种类型:静态全局变量、静态局部变量和静态函数。静态全局变量的作用域限制在定义它的源文件内,避免了不同源文件间的冲突。静态局部变量在函数调用间保持其值,提供了一种持久化的存储。静态函数则只在当前源文件内可见,增强了代码的封装性。这些特性在程序设计中起到了关键作用。
摘要由CSDN通过智能技术生成

1.static 全局变量与普通全局变量的区别:

在定义变量时,全局变量之前再冠以 static

就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。两者在存储方式上并无不同。两者的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各源文件中都是有效的。而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其他源文件中不能使用。由于静态全局变量的作用域局限域于一个源文件内,只能为该源文件内的函数使用,因此可以避免其他源文件

使用该变量。把普通全局变量改变为静态全局变量是改变了他的作用域,限制了他的使用范围。

2.static 局部变量和普通局部变量的区别:

普通局部变量所在的函数每次被调用都会被重新定义并分配存储空间,而 static 局部变量不会,他的值始终保存着。static

局部变量只被初始化一次,下一次使用时依旧是上一次的值。

3.static 函数与普通函数的区别:

static 函数(即静态函数,在函数定义时加上了static

关键字)与普通函数作用域不同,他仅存在于文本文件中。只在当前源文件中使用的函数应该说明为内部函数(即加上static关键字)。内部函数应该在当前

源文件中声明和定义。对于可在当前源文件以外的函数,应该在一个头文件中说明,要使用这个函数的源文件要包含这个头文件。另:程序的普通全局变量存在于堆

栈中,全局变量、static 局部变量存在于静态存储区中。

PS: 以前学习C语言时做的笔记,今天再一次看到就写在博客里面了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值