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