C語言變量屬性

在C語言中,變量是具有屬性的,主要有auto、static、register、extern

auto :局部變量的自動默認屬性,不需要顯示聲明,且存儲在棧上

register:寄存器變量,請求編譯器將局部變量存儲在寄存器中,由於是請求,編譯器有可能拒絕,所以儘管利用register對變量進行了修飾,但是並一定是存儲在寄存器中的,如果變量存儲在寄存器中,則不能用&取地址符。

eg:

register int j=6;   //error,修飾局部變量

int main()

{

register int i=5;

printf("%x\n",&i);  //error

}

static:如果修飾的是局部變量,則表明把該變量存入程序靜態存儲區

另外static關鍵字,具有作用域限定的作用,將static修飾的變量限定在聲明的當前文件中。外部文件無法訪問。

extern:用於聲明外部定義的變量和函數

也就是說extern告訴編譯器該變量或者函數,在其他文件進行了定義分配了空間,你儘管用就行了。

當然extern也用於指定編譯器按照C語言標準進行程序編譯。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章