【发布时间】:2020-05-04 11:09:46
【问题描述】:
我遇到过一种通知内核关于 char 设备的方法:
int cdev_add(struct cdev *, dev_t, unsigned);
来自<linux/cdev.h> 并且不明白,怎么可能传递未命名的参数(有两个没有名字 - 第二个和第三个)。甚至,第三个参数unsigned 具有部分类型(unsigned int?char?long?...)。我在某处读过,它是为了函数重载来“选择”正确的构造函数,但如果是这样,不应该在标题中声明更多这些构造函数吗?(但没有),那么我如何引用这些参数没有名字?
【问题讨论】:
-
这是一个函数原型。原型中的参数名称是可选的。
-
您何时在调用函数时按名称引用参数?定义时完全是另一回事。
-
这是一个函数原型。在代码库中搜索
cdev_add,您应该会找到包含参数名称的完整函数定义。 -
“我在某处读过,它是用于函数重载以“选择”正确的构造函数” - 我认为您将 C 误认为 C++。
-
@Herdsman - 你发布的不是函数的主体。这不是函数定义,只是声明。
标签: c linux-device-driver