1、自动存储类:变量在声明时可以加上auto(也可不加),自动存储,具有代码块作用域,用到它时分配内存,用完了就释放内存,它的声明方式是在代码块内,链接为空;
2、寄存器存储类:寄存器变量声明时只是向编译器发出请求,而不是命令。如果幸运,寄存器变量被存储到寄存器中享受高速访问和操作;如果请求被编译器拒绝,那么该变量就是个普通变量。自动存储,具有代码块作用域,声明方式在代码块内,使用关键字register,链接为空;
3、空链接的静态存储类:空链接变量就是只在一个代码块内被操作的变量,静态就是这个变量在整个文件运行过程中的变化会一直被记录。静态存储,代码块作用域,链接为空,声明方式为代码块内,使用关键字static;
4、具有外部链接的静态存储:不加static,如果该变量在其他文件中被声明,那么要加extern;如果在本文件中首先声明,那么不加extern。静态变量在程序执行时一直存在,即内存一直为其分配内存。静态存储,具有文件作用域,链接为外部链接,声明方式为所有函数之外;
5、具有内部链接的静态存储:加static,静态存储,具有文件作用域,链接为内部链接,声明方式为所有函数之外。