在64bits環境下編譯
static struct class *new_class;
static char *set_devnode(struct device *dev, mode_t *mode)
{
return NULL;
}
new_class = class_create(THIS_MODULE, DRV_NAME);
new_class->devnode = set_devnode;
==================================
會一直出現 warning: assignment from incompatible pointer type
[-Wincompatible-pointer-types]
上網查了 devnode
struct class {
...
char *(*devnode)(struct device *dev, mode_t *mode);
...
};
我的認知這不就是把 (char * )塞給 (char *)
我也嘗試過casting: new_class->devnode = (char *)set_devnode;
或者將 static char *set_devnode 宣告成 char *set_devnode
但是都有相同結果@@
可以請教這個問題是我忽略了什麼嗎?