有人可以向我解释一下 libusb 中的这个 typedef 吗?

标签 c typedef

我想将 libusb.h 转换成 PureBasic 代码,现在我有了这一行:

typedef void (LIBUSB_CALL *libusb_transfer_cb_fn)(struct libusb_transfer *transfer);

这个 typedef 有什么作用?

后面有这样几行:

void LIBUSB_CALL libusb_free_device_list(libusb_device **list, int unref_devices);

提前致谢!

最佳答案

LIBUSB_CALL 只是一个类型注解。它可能什么都不做。

这声明了一个类型“f”,它是一个返回 void 并接受“params”的函数指针:

typedef void (*f)(params...)

libusb_transfer_cb_fn 是一种表示函数指针的类型,将指针附加到 libusb_transfer 结构并且不返回任何内容(void)。

关于有人可以向我解释一下 libusb 中的这个 typedef 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17075439/

相关文章:

c - 如何在指向字符串的指针上使用 toupper()?

c - 在不知道其类型的情况下,释放为指向指针的指针分配的所有空间

c - C 中的按位运算符,指的是 8 位数组中的位置

ruby-on-rails - Ruby FFI - 捕获对 exit() 的 C 调用

c++ - 避免 typedef C++ 中的声明冲突错误

c - 为什么这不起作用?[链接列表]

c - Accept4 中的声明 {sa_family=AF_UNIX} 和 [110->2] 意味着什么?

c++ - 在 C++ 模板类中,我可以使用相同的名称对模板参数进行类型定义吗?

c++ - 在 C++ 中定义未命名结构时出错

c++ - 当 typedef 的完整类型将具有未知形式时,我可以前向声明 typedef 吗?