看程序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++编程思想》