我有一段代码,它是函数指针的示例,取自 Linux 内核源代码。下面是具有回调函数作为其成员的结构
struct parport_driver {
const char *name;
void (*attach) (struct parport *);
struct parport_driver *next;
};
现在这些结构的成员在 C 文件中被调用,如下所示
struct parport_driver *drv;
drv->attach(port); /* calling function through implicit dereference */
上面的函数是以隐式方式调用的,但我想知道它如何被称为显式方式。
取消引用函数指针的隐式和显式方式有什么区别。
我想知道的另一件事是结构成员附加应该在调用之前初始化 (drv->attach(port));
有点像
drv->attach=attach_driver_chain;
其中 attach_driver_chain 是函数,但我在驱动程序代码中找不到任何此类初始化。