操作系统循环变量堆栈问题

时间:2011-09-01 03:30:45

标签: c++ compiler-construction operating-system

cout << "blah blah blah";
for (int i=0; i < n; i++)
{
 cout << '#' << endl;;
}
cout << "blah blah blah";

是堆栈帧上的整数i?如果整数只能在循环中使用,那么操作系统如何跟踪哪些变量只能在循环中使用而不是在整个函数中?

2 个答案:

答案 0 :(得分:4)

操作系统与它没有任何关系 - 这是编译器的工作。

任何体面的系统都会将我保存在cpu寄存器中

答案 1 :(得分:2)

在这种情况下,变量i几乎肯定会放在寄存器中。

编译器而不是操作系统强制执行仅在循环内可访问变量的规则。 (这是编译时规则,而不是运行时规则。)