今天遇到一个问题,c中int只有32位,但要用到64位时怎么办?
最初我用的是long long但发现这样编译不能通过,查找了资料才知道每个编译器定义,输出的方式不同,下面把他分享出来
变量定义 |
输出方式 |
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() |
正确 |
正确 |
正确 |
正确 |
无法编译 |
原文地址:点击打开链接
发表评论 (对文章评论)