16.变量的存储类别
#include <stdio.h> #include <stdlib.h> int value1 = 100; //文件作用域、外部链接、静态存储期 int static value2 = 99; //文件作用域(仅限翻译单元)、内部链接、静态存储期 void isOk(); void isOk1(); int main() { auto int value3 = 100; //块作用域、无连接、自动存储期 也叫自动变量、局部变量 auto可以不加 extern int value1; //引用式声明,本函数内要使用外部变量value1 static int value4 = 98; //块作用域、无连接、静态存储期 严格意义上他不属于该函数,他在加载本函数之前就完成了初始化,默认值为0 register int value5 = 666; //块作用域、无连接、自动存储期 不存储在内存中,而是存储在寄存器中,所以找不到该变量的内存地址 isOk(); isOk(); isOk(); isOk(); isOk1(); return 0; } void isOk() { int static cnt; cnt++; printf("idOk()函数被调用了%d次\n", cnt ); } //文件二 #include <stdio.h> #include <stdlib.h> void isOk1() { extern int value1; //引入式声明,调用其他文件的变量 //extern int value2; printf("isOk1()被调用了,hello.c的value1:%d\n" , value1); //printf("isOk1()被调用了,hello.c的value2:%d\n" , value2); }
分类:
C Primer Plus
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界