C与C++关于register(寄存器)的不同
在C语言中一般使用register寄存器需要设置
例如:
//在C语言中使用register寄存器是为了加快速度
int main() // 早期的C语言编译器不会对代码进行优化,因此register是一个很好的补充
{
register int a = 10;
printf("&a: %d\n",&a);//不能再寄存器变量上取地址
}
//在C++中用register可以编译通过
void main() //在C++编译器中发现程序需要取register变量的地址时,register对变量的声明变得无效
{
register int a = 10;
printf("&a: %d\n",&a);
//l类似于这种频换使用i的地方,c++编译器会做优化,将i放到寄存器里面,加快执行速度
for (int i = 0; i < 1000; i ++) //即使不定义关键字register,C++也会做优化
{
printf("i:%d\n", i);
}
system("pause");
}