关键字:register (建议将变量存到寄存器)ex:register int a
这里解释一下寄存器(寄存器是集成到CPU上的)
区域 | 特点 |
寄存器 | 内存小,速度快,造价高 |
高级缓存 | 内存小+,速度相对慢 |
内存 | 内存大,速度相对更慢,造价低 |
硬盘 | 内存大+,速度更慢,造价低 |
网盘 | 内存大++,免费 |
总之就是从寄存器到网盘,速度越来越低,内存越来越大,造价越来越低。
关键字: static
(修饰变量和函数)ex:static int a;static int add();
函数和全局变量本身具有外部链接属性;可以在外部起作用
static修饰后变成了内部链接属性;只能在本文件起作用
注意:感觉上作用域变小了,实质是外部链接属性和内部链接属性的变化。
修饰局部变量后不会销毁(储存在静态区的变量生命周期和程序的生命周期相同),且只起第一次作用。修饰后变成静态局部变量。总结:只能在本源文件使用,其他源文件无法使用(即无法成功用extern声明)。
这里解释一下内存()
栈区 | 存放:局部变量,形参 |
堆区 | 动态内存开辟 |
静态区 | 存放:静态变量,全局变量 |
只是储存区域发生变化,作用域依然是局部变量。