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

}
相關文章
相關標籤/搜索