当前位置: 技术问答>linux和unix
函数内部局部变量问题
来源: 互联网 发布时间:2016-12-21
本文导语: 如下代码: void fun(void) { int a; for(;;) { int b; } } 在线程中,a,b均在堆栈中,是在此函数被调用的时候a,b就已经分配好,还是只有a先分配好,然后在执行for的时候在分配b? | ...
如下代码:
void fun(void)
{
int a;
for(;;)
{
int b;
}
}
在线程中,a,b均在堆栈中,是在此函数被调用的时候a,b就已经分配好,还是只有a先分配好,然后在执行for的时候在分配b?
void fun(void)
{
int a;
for(;;)
{
int b;
}
}
在线程中,a,b均在堆栈中,是在此函数被调用的时候a,b就已经分配好,还是只有a先分配好,然后在执行for的时候在分配b?
|
事先已经通过压栈分配好了。只不过scope不同而已。。
|
这个东西要看环境,已经优化设置。你看一下最后生成的汇编就知道了。
建议发到c语言专区去,那里的人最喜欢搞这种问题。
建议发到c语言专区去,那里的人最喜欢搞这种问题。
|
和编译器无关,两个变量都是事先分配好的。