【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修饰它。
相关推荐
序安InToo4 天前
第6课|注释与代码风格
后端·操作系统·嵌入式
RuoZoe5 天前
重塑WPF辉煌?基于DirectX 12的现代.NET UI框架Jalium
c语言
祈安_8 天前
C语言内存函数
c语言·后端
郑州光合科技余经理10 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo12310 天前
matlab画图工具
开发语言·matlab
dustcell.10 天前
haproxy七层代理
java·开发语言·前端
norlan_jame10 天前
C-PHY与D-PHY差异
c语言·开发语言
多恩Stone10 天前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc
QQ40220549610 天前
Python+django+vue3预制菜半成品配菜平台
开发语言·python·django
czy878747510 天前
除了结构体之外,C语言中还有哪些其他方式可以模拟C++的面向对象编程特性
c语言