【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修饰它。
相关推荐
Freak嵌入式7 小时前
PIO 入门:手把手实现板载 LED 闪烁,原理与代码全解析
嵌入式
Freak嵌入式13 小时前
一文搞懂树莓派 Pico 任务调度器:基于定时器的 MicroPython 多任务实现
嵌入式
Interview Aid11215 小时前
TikTok OA 四题分享|半小时内 AC,题目基本都是实现题
java·开发语言·算法·面试·职场和发展
CoderIsArt1 天前
C#中UI 线程与 Dispatcher
开发语言·ui·c#
AI情绪识别开源1 天前
检信 ALLEMOTION OS 加密打包可执行程序 — 全面测试报告版本: v1.3功能测试 / 性能测试 /
开发语言·数据结构·人工智能·功能测试
「QT(C++)开发工程师」1 天前
C++ auto 用法详解
开发语言·c++
OPEN-F1 天前
C++STL教程:容器适配器与实用工具
开发语言·c++
yaoxin5211231 天前
507. Java 反射 - 在 BeanFactory 中实现依赖注入
java·开发语言
OPEN-F1 天前
C++模板教程:变参模板、折叠表达式与SFINAE
java·开发语言·c++