在定义变量的时候可以加上属性关键字

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的方式编译程序“