c语言-关键字static

局部变量:运行周期=函数的运行周期

全局变量:运行周期=整个程序的运行周期(程序可以是多个.c文件组成)

static可以修饰:1、局部变量(函数内定义的) 2、全局变量(函数外定义的)  3、函数

1.修饰局部变量->静态局部变量:

  • 开辟存储空间。在编译的过程中,会在数据区为该变量开辟空间,
  • 并对其进行初始化,如果代码中未对其进行初始化,则系统默认初始化为0。
  • 变量超出函数的生存期,可被多个函数引用,但不能改变

2.修饰全局变量->静态全局变量:

  • 全局变量定义在函数体外部,在全局数据区分配存储空间,且编译器会自动对其初始化。
  • 普通全局变量对整个工程可见,其他文件可以使用extern外部声明后直接使用。也就是说其他文件不能再定义一个与其相同名字的变量了(否则编译器会认为它们是同一个变量)。
  • 静态全局变量仅对当前文件可见,其他文件不可访问,其他文件可以定义与其同名的变量,两者互不影响。

3.修饰函数->静态函数:

  • 普通函数可以在另一个文件中直接引用,甚至不必使用extern声明,(比全局变量更随意)
  • 变成静态函数后,静态函数只能在声明它的文件中可见,其他文件不能引用该函数不同的文件可以使用相同名字的静态函数,互不影响

使用范围:函数--->文件--->程序 

static把全局函数和全局变量,缩小使用范围到单个文件范围内,把局部变量从函数范围升级到文件范围

posted @   是我在啊  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示