gpt4 book ai didi

c - typedef int function(void*) 是什么意思?

转载 作者:太空狗 更新时间:2023-10-29 15:19:44 25 4
gpt4 key购买 nike

我看到一些使用以下结构的 BSD 代码:

typedef int driver_filter_t(void*);

这到底是什么意思?我不认为它是一个函数指针,否则它会类似于 typedef int (*driver_filter_t)(void*),对吧?

最佳答案

typedef int driver_filter_t(void*);

这是一个函数类型的定义。它使driver_filter_t类型的别名,可以描述为“函数返回 int,参数类型为指向 void 的指针”。

至于所有typedef s,它为现有类型创建别名,而不是新类型。

driver_filter_t 不是指针类型。您不能声明 driver_filter_t 类型的东西(语法不允许使用 typedef 名称声明函数)。您可以声明一个函数指针对象,例如:

driver_filter_t *func_ptr;

因为如果不添加 * 就不能直接使用函数类型名称表示指针类型,定义 typedef 可能更常见s 表示函数指针类型,例如:

typedef int (*driver_filter_pointer)(void*);

但是函数类型的 typedef 是完全合法的,我个人觉得它们更清晰。

关于c - typedef int function(void*) 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24065191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com