【发布时间】:2013-06-24 22:31:41
【问题描述】:
在下面的代码中,
int main( )
{
register int arr[4];
/* ... */
}
'arr' 是否有可能在某个 cpu 寄存器中分配。 (考虑 cpu 有 4 个或更多寄存器)。
否则编译器将忽略 register 数组的存储类。
【问题讨论】:
-
我可以想象一个优化编译器将整个
char[8]数组保存在一个寄存器中,但我认为当前的任何编译器都不会这样做。 -
如今,
register关键字与 CPU 寄存器无关……编译器会忽略它,只是不允许获取声明为register的变量的地址。 -
在极端情况下是可以的,有时可以,但一般不会发生。
标签: c compiler-construction embedded microcontroller microprocessors