void value not ignored as it ought to be int login_result = do_login(sockfd, msg);
时间: 2024-03-18 13:40:24 浏览: 17
这个错误通常是因为在一个表达式中使用了一个函数调用,但是没有使用该函数返回的值。在你的例子中,`do_login` 函数的返回值被用于一个赋值语句中,但是这个值没有被用于任何其他地方。要解决这个错误,你需要确定是否真的需要使用 `do_login` 函数的返回值,如果不需要,你可以将代码修改为如下所示:
```
do_login(sockfd, msg);
```
如果你确实需要使用返回值,你需要将其存储在一个变量中,并且在后续的代码中使用该变量。例如:
```
int login_result = do_login(sockfd, msg);
// 使用 login_result 变量进行后续操作
```
这样就不会出现上述错误了。原因是在 C 语言中,如果一个函数返回了一个值,但是这个值没有被使用,编译器会产生警告,因为这可能会导致程序出现意外的行为。因此,为了保证程序的正确性,我们应该始终使用函数的返回值,或者将其忽略。
相关问题
void value not ignored as it ought to be if(do_login(sockfd,msg) == 1)
这个错误通常是因为在一个表达式中使用了一个函数调用,但是没有使用该函数返回的值。在你的例子中,`do_login` 函数的返回值被用于一个条件语句中,但是这个值没有被用于任何其他地方。要解决这个错误,你需要确定是否真的需要使用 `do_login` 函数的返回值,如果不需要,你可以将代码修改为如下所示:
```
do_login(sockfd,msg);
```
如果你确实需要使用返回值,你需要将其存储在一个变量中,例如:
```
int login_result = do_login(sockfd,msg);
if(login_result == 1) {
// do something
}
```
Error:void value not ignored as it ought to be
这个错误通常出现在你调用一个返回类型为 void 的函数,但是没有忽略其返回值。在 C++ 中,void 类型的函数不需要返回值,因此编译器不期望你使用它的返回值。
例如,如果你有一个返回类型为 void 的函数 foo,那么应该这样调用:
```
foo();
```
而不是这样:
```
int result = foo();
```
因为 foo() 不会返回任何值,所以将其赋值给变量 result 是没有意义的,编译器会提示"void value not ignored as it ought to be"的错误。