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语言标准进行程序编译。


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