请教各位,VC Release版编译优化错误?
#include <stdio.h>
void main()
{
int i = 1;
int j = 2;
long p1 = (long)(&i);
long p2 = (long)(&j);
printf("(p1-p2)>0: p1=0x%08X, p2=0x%08X, p1 %s p2\n",
p1, p2, (p1-p2)>0 ? ">" : "<");
printf(" p1 > p2: p1=0x%08X, p2=0x%08X, p1 %s p2\n",
p1, p2, p1>p2 ? ">" : "<");
}
请运行以上代码的Release版。
在我的机器上第个printf()会打印出错误结果:p1 < p2, 应该是p1 > p2
cl.exe 版本号:12.0.8168.0