static与extern使用

前言:回顾C中extern与static的使用

场景1:静态局部变量(函数内部)

void counter( ) {

// 普通局部变量:每次函数调用都会重新初始化

int normal_var = 0;

normal_var++;

printf("normal_var = %d\n", normal_var); // 总是输出1

// 静态局部变量:只初始化一次,生命周期持续到程序结束

static int static_var = 0; // 初始化只执行一次!

static_var++;

printf("static_var = %d\n", static_var); // 每次调用递增

}

场景2:静态全局变量/函数(文件作用域)

file1.c //称为:文件名

// 普通全局变量:其他文件可见

int global_var = 100;

// 普通函数:其他文件可见

void public_func( ) ;

// 静态全局变量:只在当前文件可见

static int static_global_var = 200;

// 静态函数:只在当前文件可见(隐藏实现)

static void private_func( ) ;

// file2.c

// 声明外部变量和函数

extern int global_var; // 可以访问

extern void public_func(); // 可以调用

// extern int static_global_var; // 错误!无法访问

// extern void private_func(); // 错误!无法调用

相关推荐
kkkkkkkkkk_Z26 分钟前
新手自学嵌入式 | 学习日记:I2C总线协议、时序分析、读写流程与代码实现
学习
himobrinehacken29 分钟前
位运算揭秘:左右移与符号位陷阱
c语言·c++·算法·安全
鬼手点金2 小时前
构建有效 Agent 的核心原则
java·人工智能·git·学习·自动化
姜九笙5613 小时前
python学习---归来仍是新人
java·python·学习
海绵宝宝转agent3 小时前
2026-10-19学习笔记
笔记·学习
水饺编程3 小时前
第2章:Linux 基础,rm 命令
linux·c语言·汇编
夏虫不可与之言冰3 小时前
第三课 点亮 LED 与定时器非阻塞闪烁
c语言·c++·vscode·单片机·嵌入式硬件·物联网
云水初3 小时前
【agent篇】RAG Agent避坑指南(附高级RAG Agent汇总)
开发语言·笔记·python·学习·langchain·agent·rag
外收内放3 小时前
数据分析(图表信息详解)
python·学习·数据分析·matplotlib
气质、小青年!4 小时前
进程1学习
linux·学习