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