1. 程式人生 > 其它 >16.變數的儲存類別

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