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)

 

posted on 2020-08-31 18:47  wkxnk  阅读(873)  评论(0编辑  收藏  举报