1.铺垫
1.1 计算集中具有存储能力的硬件:cpu中的寄存器、cache,内存,硬盘等
1.2离cpu越近的存储硬件,效率越高,单价成本越贵;离cpu越远的存储硬件,效率越低,单价成本越便宜;
1.3程序未加载之前是在硬盘上的,运行的时候,是将程序加载到内存上的;本质上将程序加载到内存上,就是一种缓存技术;同样的计算机也可以将内存中的数据缓存到cpu的寄存器和cache中;也是一种缓存技术;
1.4对于任何一种硬件而言,都充当着上游硬件的缓存(内存看作是硬盘的缓存,cache或寄存器是内存的一种缓存)(上下游不好区分,主要看括号中的理解)
1.5缓存的根本目的:是为了让cpu访问数据的时候,以最小的成本,达到最高的效率
2.register(最快的关键字)
register:寄存器
register修饰变量:尽量把所修饰的变量,放入寄存器中,从而达到提高效率的目的;注意尽量,能放就放入寄存器,放不了,就别放;
什么样的变量可以采用放入寄存器呢?
1.局部变量(全局变量会导致cpu寄存器长时间被占用)
2.不会被写入的(写入就需要将数据写回内存,后续还要再次加载,register的意义就不存在了)
3.高频率被读取的(提高效率)
4.如果要使用,请不要大量使用,因为寄存器数量有限;
5.register修饰变量,不能取地址(取地址是内存相关的概念);
register int pass=100;
pass=200; //可以更改变量
printf("%p\n",&pass) //编译器报错,不可以取地址;