gpt4 book ai didi

c - int 指针指向两个结构体指针?

转载 作者:行者123 更新时间:2023-11-30 16:26:10 25 4
gpt4 key购买 nike

这是来自 linux 构建文件 <linux/usb/serial.h> :

int (*calc_num_ports)(struct usb_serial *serial, struct usb_serial_endpoints *epds);

我只是有点无法理解这里发生的事情。一个 int 指针指向两个结构体指针?这是如何运作的?

最佳答案

它告诉您它是什么以及它在 header ( <linux/usb/serial.h> ) 中的用途:

@calc_num_ports: pointer to a function to determine how many ports this *  device has dynamically. It can also be used to verify the number of *  endpoints or to modify the port-endpoint mapping. It will be called *  after the probe() callback is called, but before attach().

The syntax for a function pointer is not very intuitive. Consider the following:

int *calc_num_ports(struct usb_serial *serial, struct usb_serial_endpoints *epds);
int (*calc_num_ports)(struct usb_serial *serial, struct usb_serial_endpoints *epds);

第一个是名为calc_num_ports的函数的原型(prototype)需要两个参数,struct usb_serial *struct usb_serial_endpoints * ,和returnint * .

第二个是变量类型,需要带有两个参数的函数的地址,struct usb_serial *struct usb_serial_endpoints *returnint .

关于c - int 指针指向两个结构体指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53146895/

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