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);

}
复制代码

 

posted @   学而不思则罔!  阅读(48)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示