1. 程式人生 > >C語言的變量屬性

C語言的變量屬性

c auto register static extern

在定義變量的時候可以加上屬性關鍵字

1)auto

auto是C語言中,局部變量的默認屬性

auto表明將被修飾的變量存儲於棧上

編譯器默認所有的局部變量都是auto的

2)register

1.register關鍵字指明將局部變量存儲於寄存器中

2.register只是請求寄存器變量,但是不一定成功

3.register變量必須是CPU寄存器可以接受的值

4.用&不能獲得register變量的地址(因為,&是獲得內存中的地址,而register變量是存儲於寄存器中,當然不能使用&來獲得register變量的地址)

3)static

1.static關鍵字指明了變量的”靜態“屬性

----static修飾的局部變量存儲在程序靜態區

2.static關鍵同時具有“作用域限定符”的意義

----static修飾的全局變量作用域只是聲明的文件中

----static修飾的函數作用域只是聲明的文件中

4)extern

1.extern用於聲明“外部”定義的變量和函數

----extern變量在文件的其他地方分配空間

----extern函數在文件的其他地方定義

2.extern用於“告訴”編譯器用C的方式編譯

C++編譯器和一些其他的C編譯器由於開發者不同,各個不同的編譯器會按照自己的方式編譯函數和變量,但是,當有了extern之後,就必須遵照“標準C的方式編譯程序“


本文出自 “梵高說我腦子有病” 博客,謝絕轉載!

C語言的變量屬性