注册关键字为deprecated and mostly ignored。
但documentation on the msdn的这一小部分让我感到奇怪。
编译器不接受用户对寄存器变量的请求; [...]但是,与注册关键字相关的所有其他语义都受到尊重。
那些其他语义是什么?
答案 0 :(得分:8)
例如,在C中,您无法获取使用register
说明符声明的对象的地址。
void foo(void)
{
register int a = 42;
&a; // constraint violation
}
另一个例子,你不能在文件范围声明中使用register
:
register int b = 42; // constraint violation
int main(void)
{
}