expected ‘struct phoenix_sdn_load_balance_l2 *’ but argument is of type ‘struct phoenix_sdn_load_balance_l2’
时间: 2023-08-04 21:04:39 浏览: 51
这个错误通常是因为函数的参数类型与传递的实际参数类型不匹配所导致的。在你的代码中可能有类似以下的错误:
```c
struct phoenix_sdn_load_balance_l2 lb;
...
foo(lb);
...
void foo(struct phoenix_sdn_load_balance_l2 *lb_ptr) {
...
}
```
在这个例子中,`foo` 函数期望的参数类型是一个指向 `struct phoenix_sdn_load_balance_l2` 结构体的指针,但是我们传递给它的是一个结构体类型。要解决这个问题,你需要将传递的参数类型改为指向结构体的指针类型,如下所示:
```c
struct phoenix_sdn_load_balance_l2 lb;
...
foo(&lb);
...
void foo(struct phoenix_sdn_load_balance_l2 *lb_ptr) {
...
}
```
通过这样的修改,我们可以将 `&lb` 传递给 `foo` 函数,这是一个指向 `struct phoenix_sdn_load_balance_l2` 结构体的指针,与函数期望的参数类型相匹配。
相关问题
expected ‘struct in_addr’ but argument is of type ‘char *’
这个错误提示意味着你在程序中使用了一个 `char *` 类型的参数,而实际上这个参数应该是一个 `struct in_addr` 类型的变量。可能的原因是你向一个需要 `struct in_addr` 参数的函数传递了一个 `char *` 类型的指针。或者是在函数中使用了一个 `char *` 类型的变量,而该变量应该是 `struct in_addr` 类型的。你需要检查代码中涉及到 `struct in_addr` 和 `char *` 的地方,确保它们的类型正确匹配。
note: expected 'INT_POINT_INFO *' {aka 'struct int_point_info_ *'} but argument is of type 'FLOAT_POINT_INFO *' {aka 'struct float_point_info_ *'}
这是一个编译器的提示信息,表示函数期望的参数类型是'INT_POINT_INFO *',但实际传入的参数类型是'FLOAT_POINT_INFO *'。这通常是由于函数声明和函数调用之间的参数类型不匹配导致的。你需要检查函数声明和函数调用的参数类型,并确保它们匹配。如果不能直接修改参数类型,你可以考虑使用类型转换将参数转换为正确的类型。但是要注意,类型转换可能会丢失一些精度或者导致其他问题,所以需要谨慎使用。