70,024
社区成员




变量i前无volatile时,debug和release模式下都是输出10,10,此时是因为直接读取寄存器的原因。
而有volatile时,release模式输出10,32,但debug模式下仍然输出10,10。此处不明白。
有volatile强行读取内存时,debug和release模式下不是应该都输出10,32吗,为什么debug模式下仍然输出10,10?
void main()
{
volatile int i = 10;
int a = i;
printf("\ni=%d", a);
_asm
{
mov dword ptr[ebp - 4], 20h;
}
int b = i;
printf("\ni=%d", b);
getchar();
}