我正在尝试理解其他人编写的 C 代码,并且遇到了一段我不理解所有语法和我不理解的部分的代码,我不知道如何搜索。我将不胜感激有关如何搜索此内容和我可能遇到的其他类似事物的解释或信息,或两者兼而有之。有问题的代码是以下行:
int r = uv_listen((uv_stream_t*) &server, 128, on_new_connection);
我知道 r 是一个变量,它被声明并初始化为函数“uv_listen()”返回的值,128 是一个文字 int 参数,on_new_connection 必须是一个函数指针,因为这是回调函数的名称被称为。server 是一个自定义类型(uv_tcp_t)的变量,带有 & 是指服务器的地址。我不明白的是“(uv_stream_t *)&server”。看起来这是函数的参数之一。我可以理解返回值作为参数的函数调用,但这看起来不像函数调用。“uv_stream_t”是在他们的代码中定义的另一种自定义类型。
我不知道它是否有助于理解它的含义,但代码行来自编写的示例代码,以帮助理解如何使用 libuv。