【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修饰它。
相关推荐
##echo27 分钟前
嵌入式Linux裸机开发笔记9(IMX6ULL)GPIO 中断实验(1)
linux·c语言·笔记·单片机·嵌入式硬件
枫叶丹41 小时前
【Qt开发】信号与槽(二)-> 信号和槽的使用
开发语言·qt
扶摇直上——————1 小时前
C专题8:文件操作2
c语言·文件操作
Vertira1 小时前
python 阿里云 安装 dashscope的简介、安装
开发语言·python
我爱学嵌入式3 小时前
C语言第 9 天学习笔记:数组(二维数组与字符数组)
c语言·笔记·学习
hqxstudying3 小时前
Java异常处理
java·开发语言·安全·异常
wjs20246 小时前
状态模式(State Pattern)
开发语言
我命由我123456 小时前
Kotlin 数据容器 - List(List 概述、创建 List、List 核心特性、List 元素访问、List 遍历)
java·开发语言·jvm·windows·java-ee·kotlin·list
liulilittle6 小时前
C++ TAP(基于任务的异步编程模式)
服务器·开发语言·网络·c++·分布式·任务·tap
励志要当大牛的小白菜8 小时前
ART配对软件使用
开发语言·c++·qt·算法