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

相关推荐
SuperByteMaster31 分钟前
timer.c 介绍
c语言
何事误红尘1 小时前
Mqtt学习笔记(一):Mosquitto服务器搭建、MQTTX安装测试
学习
青山是哪个青山1 小时前
LangChain 学习笔记(三):LangSmith 调试与监控
笔记·学习·langchain
qq_448011163 小时前
C语言中的柔性数组
c语言·开发语言·柔性数组
那年窗外下的雪.3 小时前
AIDC 学习日志 第 04 天 BGP Underlay 基础与路由选择
服务器·学习·php
蒸蒸yyyyzwd3 小时前
cpp选手备战后端学习笔记day6 秋招笔试题
笔记·学习
luj_17685 小时前
塔防牌:策略与卡牌的智慧碰撞
服务器·c语言·开发语言·经验分享·算法
weixin_446260855 小时前
AVA-Encoder:面向智能体原生视频表征学习框架
学习·音视频
wuyk5556 小时前
3.链表:用指针串联的动态数据结构
c语言·开发语言·数据结构·链表
吃好睡好便好6 小时前
说说口罩的佩戴
学习·生活·口罩