VC6.0通常用于编写32位的程序,但是偶尔也需要用到64位整型以实现更精确的计算,在VC6.0中64位整型是用__int64定义的,如下为使用该类型数据计算阶乘求和的一个例子。需要注意的是printf要输出64位整型数,参数应为%I64u。
#include <stdio.h>
int main()
{
__int64 sum=0, n=1;
int i;
for(i=1; i<=20; i++)
{
n = i*n;
sum = sum+n;
}
printf("%I64u\n", sum);
return 0;
}
附上不同编译器下定义64为整型数据的方式(转自https://blog.youkuaiyun.com/hongxdong/article/details/5559312)
变量定义 | 输出方式 | 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() | 正确 | 正确 | 正确 | 正确 | 无法编译 |