首页
社区
课程
招聘
局部变量什么时候入栈?
发表于: 2005-10-13 10:09 5029

局部变量什么时候入栈?

2005-10-13 10:09
5029
void test()
{
        if(condition) {
                int i=0;
        }
}
如果if条件为假,i的空间还分配吗?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 329
活跃值: (343)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
2
看编译器了
2005-10-13 16:32
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
能不能说得再详细一点?
2005-10-15 16:48
0
雪    币: 217
活跃值: (99)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
最初由 jronald 发布
void test()
{
if(condition) {
int i=0;
}
如果if条件为假,i的空间还分配吗?
........


即使为真也不一定分配栈空间,也许编译器自动使用寄存器变量了。
2005-10-15 20:38
0
雪    币: 47147
活跃值: (20470)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
5
编译一个实例看看明白了。不同的编译模式,如优化等,结果会不同的。
2005-10-15 21:44
0
雪    币: 208
活跃值: (46)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
如果想把这些弄清楚,建议看  黑客反汇编揭秘  这书,里面有对函数变量等多方面的讨论!
2005-10-16 10:50
0
游客
登录 | 注册 方可回帖
返回
//