首页
社区
课程
招聘
[旧帖] [求助]for(int i =0) 这个变量好像不是存在栈里面 0.00雪花
发表于: 2014-10-1 10:59 4247

[旧帖] [求助]for(int i =0) 这个变量好像不是存在栈里面 0.00雪花

2014-10-1 10:59
4247
收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 358
活跃值: (662)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
2
是的!。。。。。。。
2014-10-1 11:10
0
雪    币: 735
活跃值: (306)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
值类型都是存放在栈里的。
引用类型都是存放在堆里的。
2014-10-1 11:38
0
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
4
唉~~理论上是存在栈里的,但是大部分情况下会被优化,存在寄存器里面。
2014-10-1 12:04
0
雪    币: 88
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
引用和指针是一个的 在汇编层面
2014-10-1 12:17
0
雪    币: 90
活跃值: (91)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
看看反汇编代码就知道了呀
11:       for (int i=0;i<10;i++)
0040104F   mov         dword ptr [ebp-3Ch],0
00401056   jmp         main+31h (00401061)
00401058   mov         eax,dword ptr [ebp-3Ch]
0040105B   add         eax,1
0040105E   mov         dword ptr [ebp-3Ch],eax
00401061   cmp         dword ptr [ebp-3Ch],0Ah
00401065   jge         main+4Ah (0040107a)
2014-10-1 16:45
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
临时变量存在什么地方
2015-3-10 11:00
0
雪    币: 9
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
开了优化的话一般会放到寄存器里去,栈里根本没 i
或者可以用 volatile 关掉对 i 的优化
2015-3-12 12:06
0
雪    币: 8
活跃值: (120)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
局部变量都是存在栈中的
2015-3-12 12:25
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
栈里面,全局变量会在.bss 和 .data或者.rodata里的
2015-4-19 23:12
0
雪    币: 2663
活跃值: (2081)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
要么在栈里,要么被优化
2015-4-19 23:25
0
雪    币: 35
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
如果被优化的话,是存在寄存器里面的
2015-4-20 17:52
0
游客
登录 | 注册 方可回帖
返回
//