【C 】static 关键字

目录

    • static
      • 1)基本概念
      • 2)主要特点
      • 3)用途1:静态局部变量
      • 4)用途2:静态全局变量
      • 5)用途3:静态函数
      • 6)总结

static

1)基本概念

static 是C语言的一个关键字。

static 常用于声明 静态局部变量静态全局变量静态函数

static 的使用可以提高程序的模块性和封装性,防止命名冲突,并在一定程度上控制变量和函数的可见性。

2)主要特点

static的主要特点就是改变变量的:作用域生命周期存储位置

对比四种变量。

变量类型 作用域 生命周期 存储位置
局部变量 函数内部 从变量创建到函数结束 栈区
全局变量 项目内所有文件 整个程序运行期间 数据区
静态局部变量 函数内部 整个程序运行期间 数据区
静态全局变量 仅定义所在的文件 整个程序运行期间 数据区

对比两种函数。

变量类型 作用域 生命周期 存储位置
全局函数 项目内所有文件 整个程序运行期间 代码区
静态函数 仅定义所在的文件 整个程序运行期间 代码区

3)用途1:静态局部变量

  • 用于在函数内部声明的变量。生命周期为整个程序运行期间,但作用域限制在声明它的函数内。
  • 目的是:保留其值在函数调用之间的状态
C 复制代码
void exampleFunction() {
    static int count = 0;  // 静态变量
    count++;
}

4)用途2:静态全局变量

  • 用于在全局作用域声明的变量。作用域限制在声明它的源文件内。
  • 目的是:防止在其他文件中访问该全局变量。所以在不同的文件中,可以出现重名的静态全局变量。如果不加static修饰的话,是会报错:multiply defined(多重定义)。
C 复制代码
// 文件1 
static int globalVar = 42;  // 静态全局变量    只能在该源文件中使用

// 文件2
static int globalVar = 32;  // 静态全局变量    只能在该源文件中使用

5)用途3:静态函数

  • 用于在文件内声明的函数,作用域限制在声明它的源文件内。
  • 目的是:防止其他源文件调用该函数。
C 复制代码
// 只能在该源文件中使用该函数
static void staticFunction() {
    // 函数实现
}

6)总结

这些是 static 在C语言中的一些常见用法。static 的使用可以提高程序的模块性和封装性,防止命名冲突,并在一定程度上控制变量和函数的可见性。

  • 一般,不希望其他文件调用本文件的XXX函数,就用static修饰它。
  • 一般,不希望其他文件调用本文件的YYY变量,就用static修饰它。
相关推荐
LDR0061 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术1 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园1 天前
C++20 Modules 模块详解
java·开发语言·spring
bush41 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
swordbob1 天前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享1 天前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
Luminous.1 天前
C语言--day30
c语言·开发语言
玖玥拾1 天前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
何以解忧,唯有..1 天前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
謓泽1 天前
C语言不是语法,是通往机器的地图。
c语言·开发语言