天天看點

VC6.0中使用64位整型

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