error: ‘return’ with no value, in function returning non-void [-Werror]

解释:返回没有值,但是函数返回时非空的;
处理方法:
1:关闭 warning转error的编译选项,“-Wall -Werror”;
2:根据函数定义,给函数设置对应返回值;

报错代码示例

void *test_func1(void)
{
    printf("test \n");

    return;				// 函数定义了一个 void * 的指针,但是没有返回值
}

修改之后代码示例

void *test_func1(void)
{
    printf("test \n");

    return NULL;		// 返回一个NULL的指针
}
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误提示是指在一个返回非 void 类型的函数中没有包含 return 语句。在函数执行完毕后,应该返回一个与函数声明中指定的类型相匹配的值,否则会出现编译错误。要解决这个问题,需要在函数中添加一个 return 语句,以返回正确的值。 ### 回答2: 这个错误通常出现在函数中没有包含return语句但返回值是非空的情况下。这个问题可能导致程序无法正常工作或者崩溃。 对于一个声明有返回类型而函数体中没有包含return语句的函数,编译器会认为函数执行完成后不会有返回值。但是,如果调用该函数时确实需要返回值,那么程序就会出现问题。 解决此问题的方法很简单,只需要在函数的所有可能的代码路径上都添加return语句即可。当然,在代码的逻辑上也需要确保函数的所有执行路径上都有返回值。 例如,以下代码段声明了一个返回整数的函数,但函数体中没有包含return语句: ``` int add(int a, int b) { int sum = a + b; printf("The sum is: %d\n", sum); } ``` 要解决这个问题,只需要在函数体的末尾添加一个return语句: ``` int add(int a, int b) { int sum = a + b; printf("The sum is: %d\n", sum); return sum; } ``` 如果函数中包含多个可能的返回值,那么就需要使用条件语句来确定哪个返回语句应该被执行。 总之,no return statement in function returning non-void这个错误的出现是因为函数的返回值类型已经指定,但在函数体中缺少必要的返回语句。确保函数的所有执行路径上都有正确的返回值,就可以解决这个问题。 ### 回答3: 在编程语言中,当定义一个非空函数时,我们需要在函数的最后使用return语句来返回函数值,以让计算机知道该函数的返回值是什么。然而,如果在一个非空函数中缺失了return语句,就会引发“no return statement in function returning non-void”(非空函数缺失return语句)的错误。 这个错误一般出现于当我们定义函数时,我们会在函数头部指明该函数的返回类型(即在函数名之前的类型,例如int、float等等),但我们在函数中却没有给出return语句。这会使得编译器在编译过程中找不到该函数的返回值,从而导致编译错误。 解决该错误的方法是,在函数末尾给出return语句,并在其中返回该函数应该返回的值。如果我们在函数中定义了多个返回点(例如if...else语句块),那么我们需要保证每一个返回点都有一个对应的return语句。 此外,当我们在函数定义时使用了void关键字来表示该函数没有返回值,那么即使我们没有在函数中使用return语句,也不会出现该错误,因为编译器知道该函数没有返回值。 总之,我们需要在定义函数时清楚地指明函数的返回类型,并在函数中正确地使用return语句来避免出现“no return statement in function returning non-void”错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值