看程序1:

int main()
{
	register int i;
	return 0;
}
     正确。


     看程序2:

register int i;
int main()
{
	return 0;
}
    错误。


    看程序3:

int main()
{	
	static register int i;
	return 0;
}
     错误。


    看程序4:

static register int i;
int main()
{	
	return 0;
}
    错误。


      即使把程序3, 4中static和register的顺序交换, 也错。 注意, register变量存在于CPU中的寄存器中, 没有所谓的内存区域的概念, 所以, 不可能是什么全局的, 也不可能是什么static的。


      其实, 应该避免使用register类型, 因为编译器会比我们做的更好。 ---《C++编程思想》




本文转载:CSDN博客