我已经通过类型转换获得了一些知识。它们用于将变量后面的字节重新解释为另一种类型。例如:
unsigned char* byte = (unsigned char*) (some signed char);
但现在我看到以下声明:
typedef void (*uv_read_cb)(uv_stream_t* stream, ssize_t nread, uv_buf_t buf);
https://github.com/bodokaiser/libuv/blob/master/include/uv.h#L314
让我感到困惑的是:
有人对这些问题有答案吗?
答案 0 :(得分:5)
typedef确实有一个名称... uv_read_cb
,它是一个指向接受uv_stream_t*
,ssize_t
和uv_buf_t
参数的函数的指针,并返回{ {1}}。
这允许您在结构中添加指向函数的指针,将函数指针传递给函数等,同时允许您定义可以为变量分配的函数类型或传递...
void
答案 1 :(得分:3)
它是指向获取uv_stream_t*
,ssize_t
和uv_buf_t
的函数的指针,并返回void。
uv_read_cb
也是类型,您可以使用它来定义具有相同签名的其他函数。
例如:
uv_read_cb my_func;
答案 2 :(得分:1)
此语句将uv_read_cb
定义为指向返回void的函数的指针。