XP系统不支持long long吗?代码通不过去·555
对long long 赋值出现错误,我的是XP SP2:
#include <stdio.h>int main( void ){ unsigned int un = 3000000000u ; short end = 200 ; long big = 65537 ; long long verybig = 12345678908642LL ; printf( "un = %u and not %d\n" , un, un ) ; printf( "end = %hd and %d\n" , end, end ) ; printf( "big = %ld and not %hd\n" , big, big ) ; printf( "verybig: %u \n" , sizeof( verybig ) ) ; printf( "verybig = %lld and not %ld\n" , verybig, verybig ) ; return 0 ;}#include <iostream>using namespace std;int main( void ){ unsigned int un = 3000000000u ; long long verybig = 12345678908642LL ; cout<<un<<endl; cout<<sizeof(verybig)<<endl; cout<<verybig<<endl; return 0 ;}
[解决办法]
只要你的编译器支持就OK了。错就错在你用printf的格式串上,在Windows上你应该使用%I64d来输出,在Linux上才用你那个。更改如下:printf( "verybig = %I64d and not %ld\n" , verybig, verybig ) ;