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.csdn.net/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() | 正确 | 正确 | 正确 | 正确 | 無法編譯 |