【问题标题】:Xcode IDE Showing Error: "Control Reaches End Of Non-Void Function"Xcode IDE 显示错误:“控制到达非无效函数的结尾”
【发布时间】:2022-01-18 13:04:56
【问题描述】:

我正在尝试使用 Xcode 中的函数添加两个数字,但出现此错误:

“控制到达非无效函数的终点”

我的代码是:

#include <stdio.h>
int main()
{
    int add();
}
int add()
{
    int a,b,c;
    printf("Enter The Two Values12");
    scanf("%d%d", &a,&b);
    c=a+b;
    printf("The Sum is = %d", c);
}

【问题讨论】:

  • 您遇到的问题比您预期的要多。

标签: c function-call


【解决方案1】:

警告信息非常清楚,您没有像承诺的那样返回值

add() 函数返回一个int,但在您的代码中,完全没有return 语句。你需要返回一个值,因为你定义的返回类型是int

引用C11,第 6.9.1/P12 章

如果到达终止函数的},并且调用者使用了函数调用的值,则行为未定义。

所以你的编译器试图警告你可能存在的陷阱。


说的是

  • 您需要在main() 之外转发声明您的函数。
  • 您应该从main() 调用add() 函数,类似于

    int main()
    {
        add();
    }
    

【讨论】:

    【解决方案2】:

    我不太了解技术,但没有必要创建 add 函数,而且在第 6 行你错过了一个分号。省略 3,4,5 和 6 行,最后添加 return 0

    #include <stdio.h>
    int main()
    {
        int a,b,c;
        printf("Enter The Two Values1 & 2 \n");
        scanf("%d%d", &a,&b);
        c=a+b;
        printf("The Sum is = %d", c);
        return 0;
    }
    

    【讨论】:

    • 欢迎来到 StackOverflow!请拨打tour 了解本网站的运作方式。 - 不幸的是,您的回答没有解释 OP 得到的错误。另一个答案已经很好地做到了。
    猜你喜欢
    • 2016-05-07
    • 2017-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    相关资源
    最近更新 更多