考虑下面的代码:GCC和TC给出不同的输出?
#include <stdio.h>
int main()
{
printf("%d", 300 * 300/300);
return 0;
}
当在标准GCC编译器运行该代码给出结果作为300
但是当我它使用的Turbo C运行,其结果是81
。为什么这样?我知道TC使用2个字节来存储整数,结果300 * 300
显然会超过这个限制,但在打印之前它又被300分了吗? 另外什么是首先计算? 300/300
或300 * 300
?) 这种行为的原因是什么?
GCC不会失败.....看看这个.. http://www.ideone.com/Lvbox 是吗? – sasidhar
检查两个实现的整数大小:'printf(“sizeof int是%d \ n”,(int)sizeof 300);' – pmg