我和我的朋友刚刚遇到了一个非常奇怪的远程远程问题。所以基本上,我的电脑有一个 64 位处理器,但上面有一个 32 位系统。他同时拥有 32 位操作系统和 CPU。
首先,我们打印了sizeof(long long)
. 对我们俩来说,那是 8。
然后我们这样做了:
long long blah = 1;
printf ("%lld\n", blah<<40);
对我来说,这返回 1099511627776 (这是正确的结果)。对他来说是0。
这怎么可能?我们都有相同的sizeofs。
提前致谢。
编辑:我在 Win7 下使用 Code Blocks 12.11 编译并运行它。他使用Win XP 和相同版本的CB。
EDIT2:根据要求的源代码:
#include <cstdio>
int main()
{
long long blah = 1;
printf ("%lld\n", blah<<40);
return 0;
}
和
#include <cstdio>
int main()
{
printf ("%d", sizeof(long long));
return 0;
}