首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回long long值

返回long long值
EN

Stack Overflow用户
提问于 2011-01-25 06:25:35
回答 4查看 7.8K关注 0票数 1
代码语言:javascript
复制
#include <stdio.h>

int main(void) 
{
    long long x = test();
    printf("%lld\n", x);

    return 1;
}

long long test()
{   
    return 1111111111111111111;
} 

输出为734294471。如果我将对test()的调用替换为数字,则输出如我所预期的那样。我使用调试器检查了x的值,但没有将函数返回的值设置为。哪里出了问题?

我正在使用带有Visual C++编译器的Visual Studio2010。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-01-25 06:26:48

您需要在调用它之前声明test,否则C会假定它返回int

票数 4
EN

Stack Overflow用户

发布于 2011-01-25 06:28:46

IIRC,C/C++中的long long常量以'LL‘为后缀。

代码语言:javascript
复制
long long test() {
    return 1111111111111111111LL;
}

您的编译器将您的常量视为32位长度(如果您以2^32为模的常量,则得到734294471)。

票数 4
EN

Stack Overflow用户

发布于 2011-01-25 06:29:28

尝试将LL添加到返回值:

代码语言:javascript
复制
long long test()
{   
    return 1111111111111111111LL;
} 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4787934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档