C語言的變量屬性
阿新 • • 發佈:2017-11-21
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語言的變量屬性