标签: c++ c
可能重复: Address of register variable
我知道在c中不允许获取寄存器变量的地址。但是为什么这个代码是用c ++而不是用c编译的。
int main() { register int a; printf("%u\n",&a); }
答案 0 :(得分:3)
关键字register只是对编译器的提示。事实上,今天大多数编译器都会忽略它,因为它们包含高级代码,无论如何都会选择最佳的寄存器变量候选者。
register
每当你获取变量的地址时,它通常被置于堆栈中,尽管你使用了register关键字。