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

}

 

上一篇:golang类型判断


下一篇:JavaSE - 怎么利用关键字this调用构造器