error: void value not ignored as it ought to be 497 | *_laser_cloud_corner_1 += *PreTransP(_laser_now_corner);
时间: 2024-10-11 09:17:02 浏览: 33
这个错误提示 "error: void value not ignored as it ought to be" 出现在C++编译器中,意味着你在某个表达式中期待得到一个非void类型的值,但实际上计算结果是一个void类型。在这个例子中:
```c++
_laser_cloud_corner_1 += *PreTransP(_laser_now_corner);
```
`_laser_cloud_corner_1` 和 `*PreTransP(_laser_now_corner)` 都涉及到对指针的操作,其中 `_laser_cloud_corner_1` 被假设是可以加法操作的对象(可能是数组、结构体或其他支持自增运算的数据类型),而 `*PreTransP(_laser_now_corner)` 返回的是一个void类型,这通常是因为`PreTransP`函数没有显式返回非void的结果。
解决这个问题的方法通常是检查`PreTransP`函数的实现,确认它是否正确地返回了一个预期类型的结果,如果不是,可能需要修改该函数或者更改使用它的部分,以便正确处理返回值。如果`PreTransP`本来就不应该返回值,那么在其后的操作中需要明确忽略返回值,例如:
```c++
_laser_cloud_corner_1 = _laser_cloud_corner_1 + *PreTransP(_laser_now_corner);
```
相关问题
main.c:19:11: error: void value not ignored as it ought to be 19 | cishu = shuru(); | ^
这个错误是因为在代码中 `cishu` 的类型是 `void`,而 `shuru()` 函数返回的是一个整数值,导致赋值操作出现错误。
为了解决这个问题,你需要将 `cishu` 的类型定义为整数类型,例如 `int` 类型。同时,确保 `shuru()` 函数返回的值是一个整数类型,否则需要进行相应的类型转换。例如,你可以这样修改代码:
```
#include <stdio.h>
#include "shuru.h"
int main() {
int cishu = shuru(); // 将 cishu 定义为整数类型
printf("你想让小球弹跳 %d 次\n", cishu);
return 0;
}
```
这样就可以避免出现上述错误了。
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"的错误。
阅读全文