这个程序运行结果与编译方式有关,为什么?
问题1:下面这个小程序在VC6的DEBUG编译模式下两个printf函数的输出结果不一致,为什么?
问题2:在Release编译模式下却又结果一致,为什么?
// 编译环境:VC6.0 Enterprise Edition (English) with SP4.
#include <stdio.h>
void main(void)
{
int A = 1;
int B = 32;
printf("1 << ( 1 * 32 ) = %d\n", ( 1 << ( 1 * 32 ) ) );
printf("1 << ( A * B ) = %d\n", ( 1 << ( A * B ) ) );
}
小弟在转换32位色彩时因为类似的问题找了一下午的bug,我苦!