Archive for 一月 2013

windows和linux使用printf输出64位长整数

变量定义 输出方式 gcc(mingw32) g++(mingw32) gcc(linux i386) g++(linux i386) MicrosoftVisual C++ 6.0
long long “%lld” 错误 错误 正确 正确 无法编译
long long “%I64d” 正确 正确 错误 错误 无法编译
__int64 “lld” 错误 错误 无法编译 无法编译 错误
__int64 “%I64d” 正确 正确 无法编译 无法编译 正确
long long cout 非C++ 正确 非C++ 正确 无法编译
__int64 cout 非C++ 正确 非C++ 无法编译 无法编译
long long printint64() 正确 正确 正确 正确 无法编译

关于printf函数输出64位数的问题,其实在window下和linux下是不一样的
linux下是

printf("%lld/n",a);
printf("%llu/n",a);

windows下是

printf("%I64d/n",a);
printf("%I64u/n",a);