error: passing argument 1 of ‘of_get_named_gpio’ from incompatible pointer type [-Werror=incompatible-pointer-types] gpion = of_get_named_gpio(node,"led3",0 );
时间: 2023-06-24 14:03:49 浏览: 209
这个错误提示表明你调用了一个函数,并且参数类型不匹配。具体来说,你传递的第一个参数类型与函数声明中的第一个参数类型不匹配。
在这个例子中,函数是 `of_get_named_gpio()`,它的第一个参数应该是一个指向 `struct device_node` 结构体的指针,但你传递的参数类型可能不正确。
你需要检查你的代码,确保你传递给函数的第一个参数是一个指向 `struct device_node` 结构体的指针。你还可以查看函数声明,确保你正确地使用了函数的参数。你可以尝试将参数转换为正确的类型并重新编译代码。
相关问题
In function ‘myled_init’: /home/linux/Test/drivere/day3/03zhuce/mycdev.c:83:15: error: passing argument 1 of ‘cdev_init’ from incompatible pointer type [-Werror=incompatible-pointer-types] cdev_init(&cdev, &fops);
这个错误信息是因为在调用 `cdev_init` 函数时,第一个参数的类型与函数定义的参数类型不匹配。第一个参数应该是 `struct cdev *` 类型的指针,但是你传递了一个不兼容的指针类型。可以检查一下在调用 `cdev_init` 函数的地方,第一个参数的类型是否正确。如果类型正确,可以尝试将第一个参数的类型转换为正确的类型。如果类型不正确,可以将其更改为正确的类型。
warning: passing argument 3 of 'strtok_r' from incompatible pointer type [-Wincompatible-pointer-types]
警告信息 "warning: passing argument 3 of 'strtok_r' from incompatible pointer type [-Wincompatible-pointer-types]" 表示你在调用 `strtok_r` 函数时,将一个不兼容的指针类型传递给了它的第三个参数。`strtok_r` 函数需要一个指向 `char` 类型数组的指针 (`char **`),而你提供的可能是另一个类型的指针(比如 `INT8 ***`),导致编译器发出警告。
这个警告通常是安全的,因为即使指针类型不完全匹配,`strtok_r` 仍可能会尝试解析数据。但是,这种不匹配可能会导致预期之外的结果,特别是当目标类型与所需类型不兼容时。为了避免潜在的问题和提高代码的可读性和一致性,你应该确保传递正确的指针类型。
修复这个警告的方法是确保你传递给 `strtok_r` 的第三个参数是 `char **` 类型。如果你有一个 `INT8 ***` 的指针,你需要先转换它:
```c
int8_t *** int_ptr = ...;
char ** char_ptr = (char**) int_ptr;
strtok_r(some_char_ptr, delimiter, char_ptr);
```
阅读全文