Fis*_*her 3 c variables heap stack allocation
如果我有一个带有以下内容的test.c文件
#include ...
int global = 0;
int main() {
int local1 = 0;
while(1) {
int local2 = 0;
// Do some operation with one of them
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
所以,如果我必须在while循环中使用其中一个变量,哪一个更受欢迎?
也许我在这里有点模糊,但我想知道时间/空间分配的差异是否真正相关.
如果您想知道在for循环中声明变量是否导致在每次迭代时创建/销毁它,那么没有什么可以担心的.这些变量不是在运行时动态分配的,malloc这里没有任何内容- 只是留出一些内存用于循环内部.因此,将变量置于内部与在性能方面将其置于循环外部相同.
这里的真正区别在于范围而非性能.无论使用全局变量还是局部变量,只会影响您希望此变量可见的位置.