C语言 64位int 定义方式:
Linux: long long Windows:__int64
C语言 64位int 输出方式:
Linux: "%lld" Windows:"%I64d"
C++ 64位int 定义方式:
Linux: long long Windows:__int64
C++ 64位int 输出方式:
Linux: "%lld", cout Windows:"%I64d", cout
下表是以上2种定义方式、3种输出方式在5种编译环境下的运行情况:
(其中gcc是C语言编译器,g++是C++编译器)
(表格转自:https://blog.csdn.net/Thunders01/article/details/38879553)
变量定义 | 输出方式 | 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++ | 无法编译 | 无法编译 |
可以看出,对于64位int型:
1. Linux环境下,定义方式只支持 long long,输出方式只支持 "%lld"(C++还支持 cout)
2. Windows环境下,对于VC编译器,定义方式只支持 __int64,输出方式只支持 "%I64d"
3. Windows环境下,对于mingw编译器,定义方式 long long、__int64都支持,输出方式只支持"%I64d"(C++还支持 cout)
(注:mingw编译器全称是 “Minimalist GNUfor Windows”,是GNU在Windows环境下的扩展,因此编译环境更偏向Windows)