标签: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 auto register static extern
原文地址:http://chen0547.blog.51cto.com/12489941/1983643