cout << "blah blah blah";
for (int i=0; i < n; i++)
{
cout << '#' << endl;;
}
cout << "blah blah blah";
是堆栈帧上的整数i?如果整数只能在循环中使用,那么操作系统如何跟踪哪些变量只能在循环中使用而不是在整个函数中?
答案 0 :(得分:4)
操作系统与它没有任何关系 - 这是编译器的工作。
任何体面的系统都会将我保存在cpu寄存器中
答案 1 :(得分:2)
在这种情况下,变量i
几乎肯定会放在寄存器中。
编译器而不是操作系统强制执行仅在循环内可访问变量的规则。 (这是编译时规则,而不是运行时规则。)