1、auto 存储类是全部局部变量默认的存储类。如:函数
#include <stdio.h> //auto int count; 错误定义 int main() { auto int count; //正确 count = 10; printf("count=%d",count); return 0; }
2、register存储类用于定义存储在寄存器中而不是 RAM 中的局部变量。不能对它应用一元的 '&' 运算符,一般用于存储须要快速访问的变量。生命周期
3、static存储类指示编译器在程序的生命周期内保持局部变量的存在,而不须要在每次它进入和离开做用域时进行建立和销毁。作用域
4、extern存储类用于提供一个全局变量的引用,全局变量对全部的程序文件都是可见的。当您使用 'extern' 时,对于没法初始化的变量,会把变量名指向一个以前定义过的存储位置。当您有多个文件且定义了一个能够在其余文件中使用的全局变量或函数时,能够在其余文件中使用 extern 来获得已定义的变量或函数的引用。能够这么理解,extern 是用来在另外一个文件中声明一个全局变量或函数。extern 修饰符一般用于当有两个或多个文件共享相同的全局变量或函数的时候。以下:编译器
main.c io
#include <stdio.h> extern void test(); int count; int main() { count = 10; test(); return 0; }
test.c编译
#include <stdio.h> extern int count; void test() { printf("count=%d",count); }