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