static的作用

  1. 修饰局部变量(函数内部)

静态局部变量,只在程序第一次调用时初始化1次,生命周期贯穿整个程序,不会函数退出就销毁,作用域依旧仅限函数内部。

c

void test()

{

static int a = 0; // 仅初始化一次

a++;

printf("%d\n",a);

}

普通局部变量:每次进函数重新创建、退出销毁;static局部变量保存上次的值。

  1. 修饰全局变量

限制作用域,这个全局变量只能在当前.c/.cpp文件内访问,别的源文件无法extern引用。

不加static的全局变量,是整个工程可见。

c

static int g_val = 10; // 仅本文件可见

  1. 修饰函数

static函数,仅当前源文件内部可用,其他文件不能调用,隐藏函数,避免多文件函数名冲突。

c

static void func()

{

}

C++额外独有

  1. 修饰类的成员变量

属于类本身,不属于某个对象。所有对象共享同一份static成员变量,需要在类外初始化。

cpp

class A{

public:

static int num;

};

  1. 修饰类的成员函数

静态成员函数,没有this指针,只能访问static成员,不需要创建对象就可以调用。

相关推荐
逐光者9332 小时前
STM32通信协议——I2C
stm32·单片机·嵌入式硬件
千秋岁rr2 小时前
15.PWR电源控制
单片机·嵌入式硬件
johnsong2 小时前
AI前沿日报 2026-10-09:压缩极限
人工智能
结构化知识课堂2 小时前
AI产品设计思维:需求分析的新变化(与传统软件的区别)
人工智能·产品经理·axure·需求分析·ai产品经理·数据产品经理
段一凡-华北理工大学2 小时前
高炉炼铁机器视觉与智能识别十八讲~系列文章11:从单帧到视频流:时序与异常行为识别
人工智能·机器学习·python开发·智能识别·高炉智能化·时序识别
物联网软硬件开发-轨物科技2 小时前
【轨物洞见】什么是产品碳足迹(PCF)?ISO 14067 计算方法与应用场景深度解读
大数据·网络·人工智能
甜甜的大香瓜2 小时前
【MT32F006】MT32F006之PWM控制背光灯(白光)
单片机
李日华大战鸡红2 小时前
FOC SVPWM过调制(学习记录)
stm32·单片机·学习
LucianaiB2 小时前
“AI+OPC”创新应用专业赛
人工智能