error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] .write =myled_write,
时间: 2023-06-17 13:02:40 浏览: 197
DBO-CNN-BiLSTM-Attention蜣螂算法优化多变量时间序列预测,含优化前后对比(Matlab完整源码和数据)
这个错误是因为你在给一个结构体变量中的函数指针赋值时,函数指针的类型和结构体定义中的类型不一致。你需要检查一下函数指针的类型是否和结构体定义中的类型完全一致,包括参数类型和返回值类型。
如果你确定函数指针的类型是正确的,你可以使用类型转换来解决这个问题,如下所示:
```c
struct led_operations myled_ops = {
.write = (ssize_t (*)(struct file *, const char __user *, size_t, loff_t *))myled_write,
// 其他函数指针的赋值
};
```
在上面的代码中,我们使用了类型转换 `(ssize_t (*)(struct file *, const char __user *, size_t, loff_t *))` 将 `myled_write` 的类型转换成了 `ssize_t (*)(struct file *, const char __user *, size_t, loff_t *)`,这样就可以避免编译器报出 `incompatible pointer type` 的错误了。但是在进行类型转换时,需要你自己保证转换后的类型和原本的类型是一致的,否则可能会引发其他问题。
阅读全文