long long C/C++的64位整型 不同编译器间的比较
2013-03-26 19:31
330 查看
C/C++的64位整型 不同编译器间的比较[ZZ]
如果服务器是linux系统,那么定义用long long,IO用%lld如果服务器是win系统,那么声明要针对编译器而定:
+ 如果用MS系列编译器,声明用__int64 [现在新版的Visual Studio也支持long long了]
+ 如果用MinGW环境,声明用long long
+ 无论什么编译器,IO一律%I64d
变量定义 | 输出方式 | 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() | 正确 | 正确 | 正确 | 正确 | 无法编译 |
void printint64(long long a) { if (a<=100000000) printf("%d\n",a); else { printf("%d",a/100000000); printf("%08d\n",a%100000000); } }
/article/2987430.html
注意:long long 和 unsigned long long 是 C99 特有的。
相关文章推荐
- __int64 与long long 的区别, C/C++的64位整型 不同编译器间的比较
- C/C++的64位整型 不同编译器间的比较
- C/C++的64位整型 不同编译器间的比较
- C/C++的64位整型 不同编译器间的比较
- C/C++的64位整型 不同编译器间的比较(附:各类型数据的范围)
- C/C++的64位整型在不同编译器下的比较
- C/C++的64位整型 不同编译器间的比较
- C/C++的64位整型在不同编译器下的比较
- C/C++的64位整型 不同编译器间的比较
- C/C++的64位整型 不同编译器间的比较
- C/C++的64位整型 不同编译器间的比较
- C/C++的64位整型 不同编译器间的比较
- C/C++的64位整型 不同编译器间的比较
- c/c++下 long long与__int64不同编译环境的比较
- c/c++下 long long与__int64不同编译环境的比较
- C/C++的64位整型与各种编译器的关系
- C/C++/JAVA中short,int,long等整型表示范围的比较
- C/C++中的64位整数(__int64 and long long)
- 关于c++对象模型中指出的c++新手容易出现的误解之编译器不同处理
- 《Java编程思想》之对象的创建、使用、生命期(简单比较java与C++的不同之处)