-2
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)呢?

这是整个代码的链接

谢谢,

4

3 回答 3

2

这是一种将 typedef 类型作为函数指针的方法。通常在此类 typedef 中,您不会命名函数的参数,而仅指示它们的类型。

因此,该类型的变量http_data_cb将是一个指向函数的指针,该函数返回 int 结果并采用三个类型的参数http_parser*const charsize_t按此顺序排列。

于 2013-01-30T12:44:12.270 回答
1

它声明了一个函数指针类型。

type-aliashttp_data_cb是一个指向函数的指针,该函数接收三个参数并返回一个整数。

您可以使用它来获得指向其他函数的指针,例如在事件驱动系统中作为回调传递。

有关阅读和理解声明的更多帮助,请参阅顺时针/螺旋规则

于 2013-01-30T12:44:05.160 回答
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) 和返回一个整数。

于 2013-01-30T12:53:32.083 回答