我最近被朋友问过这个问题。 在C程序中,如果我申报的整数int x = 3. x会缓存吗?
int x = 3;
然后将其提取到缓存?我的意见: 是的。由于处理器将在内存中分配sizeof(int)
的空间量。然后写3到该内存位置,它将在其寄存器中获得x
,然后向其中添加3。因此,x
存储在CPU寄存器中(这是我认为它的工作原理),它也将被提取到缓存中。 而如果我们只声明整数并且不初始化它。例如,
int x;
那么CPU只是分配内存,并且不写入内存的任何所以在这种情况下x
不会在高速缓存中。 这可以概括为什么时候在缓存中获取变量。 让我知道我的想法是否正确。 谢谢
取决于它如何进行优化,它甚至可能永远不会获得内存位置。 – Mysticial 2012-02-26 01:22:49