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(); // 错误!无法调用

相关推荐
晓蛋4 天前
c语言指的是什么意思
c语言·编译器·编程开发·集成开发环境·程序实例
一隅论数智4 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
傲世仙尊4 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
XiHongShi20164 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
爱吃苹果的日记本4 天前
离散数学第六课
学习·离散数学
牵猫散步的鱼儿4 天前
重载、重写(覆盖)、重定义区别
c语言
phltxy4 天前
C 语言指针:从内存地址到灵活的数据访问
c语言
phltxy4 天前
C 语言中的数据存储:从类型到二进制位
c语言
AI职业加油站4 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展