- 论坛徽章:
- 0
|
代码如下:
volatile int i;
int j;
void main (void)
{
i = 1; //1 不被优化 i=1
i = 2; //2 不被优化 i=2
i = 3; //3 不被优化 i=3
j = 1; //4 被优化
j = 2; //5 被优化
j = 3; //6 j = 3
}
汇编如下:
i = 1; //1 不被优化 i=1
0041138E mov dword ptr [i (417164h)],1
i = 2; //2 不被优化 i=2
00411398 mov dword ptr [i (417164h)],2
i = 3; //3 不被优化 i=3
004113A2 mov dword ptr [i (417164h)],3
j = 1; //4 被优化
004113AC mov dword ptr [j (417160h)],1
j = 2; //5 被优化
004113B6 mov dword ptr [j (417160h)],2
j = 3; //6 j = 3
004113C0 mov dword ptr [j (417160h)],3
请问为什么我的编译器没有把不带volatile的变量优化掉呢?我用的是VS2005 |
|