auto
一般在代码块中定义的变量,即局部变量,默认都是auto修饰的,不过一般省略 。
那么默认的所有变量都是auto吗?不是,一般用来修饰局部变量
#include <stdio.h>
#include <windows.h>
int main()
{
for ( auto int i = 0; i < 10; i++)
{
printf("i=%d\n", i);
if(1)
{
auto int j = 0; //自动变量
printf("before: j=%d\n", j);
j += 1;
printf("after : j=%d\n", j);
}
system("pause");
return 0;
}
}
register
CPU并不是当前要计算了,才把特定数据读到CPU里面,那样速度太慢了。所以现代CPU内,都集成了一组叫做寄存器的硬件,用来做临时数据的保存。
寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果以及一些CPU运行需要的信息,寄存器变量不能被取地址。
每个硬件都充当上一级硬件的缓存。
所以离CPU越近,读取速度越快。
register 修饰变量,建议