typedef int (*http_data_cb) (http_parser*, const char *at, size_t length);
据我所知, typedef 为标准库中的类型指定了新名称。在这种情况下,*http_data_cb
的实例是一个int,但(http_parser*, const char *at, size_t length)
怎么样?
以下是whole code
的链接谢谢,
答案 0 :(得分:2)
这是一种typedef类型的方法,它是一个指向函数的指针。通常在这样的typedef中,您不会为函数命名参数,而只是指出它们的类型。
因此,类型http_data_cb
的变量将是一个指向函数的指针,该函数返回int结果并按此顺序获取类型为http_parser*
,const char
和size_t
的三个参数
答案 1 :(得分:1)
它声明了一个函数指针类型。
type-alias http_data_cb
是一个指向函数的指针,该函数接收三个参数并返回一个整数。
您可以使用它来指向其他函数,例如在事件驱动的系统中作为回调传递。
有关阅读和理解声明的更多帮助,请参阅例如: the clockwise/spiral rule
答案 2 :(得分:0)
http_data_cb :是变量
(* http_data_cb):是一个指针变量
(* http_data_cb)(...):是函数的指针变量
(* http_data_cb)(http_parser *,const char * at,size_t length):是收到的函数的指针变量(http_parser *,const char * at,size_t length)
int(* http_data_cb)(http_parser *,const char * at,size_t length):是一个接收函数的指针变量(http_parser *,const char * at,size_t length)和返回一个int。
typedef int(* http_data_cb)(http_parser *,const char * at,size_t length): http_data_cb被声明为新的数据类型别名,作为收到的函数的指针变量(http_parser * ,const char * at,size_t length)并返回一个int。