这段C++代码有什么作用
What does this piece of C++ code do?
我正在阅读WinSock教程,我注意到以下代码行:
bind(listener, (SOCKADDR*)(&clientinfo), sizeof(clientinfo))
侦听器是SOCKET
对象,客户端信息是SOCKADDR_IN
对象。
我知道&
是"地址"运算符,*
是顺从运算符。我注意到它看起来类似于 C# 中的强制转换。
在该功能的上下文中:(SOCKADDR*)(&clientinfo)
意味着什么?
(&clientinfo)
获取clientinfo
的地址,(SOCKADDR*)
并将其类型转换为指向SOCKADDR
的指针
在C++
,我更喜欢使用static_cast<SOCKADDR*>(&clientinfo)
您可以在此处阅读有关static_cast的更多信息。
这是一个演员表。它将指向SOCKADDR_IN的指针转换为指向 SOCKADDR 的指针。这两种类型恰好是兼容的。
这基本上是多态性在 C 中完成的方式,bind
是一个 C API。
相关文章:
- archive_read_support_filter_all() 有什么作用?
- 当我们为(;;) 写作时,它做了什么?for 循环中的双分号有什么作用?
- 这个递归函数有什么作用?运行时的复杂性是多少?
- DrawShadow 中的 Elevation 究竟有什么作用?
- 测试"stream >> char"有什么作用?
- "uFlags &= ~CHN_PANNING"命令有什么作用?
- GCC 的 -Wpsabi 选项究竟有什么作用?压制它意味着什么?
- int** a = new int*[n]();这个函数有什么作用?
- C++ 此函数调用之前的(void)有什么作用?
- i+=(i&-i) 有什么作用?它是便携式的吗?
- 这个size_t在 lambda 中有什么作用?C++代码
- 数组下标运算符 ([ ]) 对数组有什么作用?
- 结构之外的节点 * head 有什么作用?
- 重载括号运算符有什么作用?
- clang的"-Ofast"选项在实践中有什么作用,特别是对于与gcc的任何差异?
- std::make_unique_for_overwrite() 对 std::make_unique() 有什么作用?
- 运算符 delete[] 有什么作用?
- 下面的代码有什么作用?c++
- 这个陈述'p = I.ptr<uchar>(i);有什么作用?
- 这个嵌套的名称空间定义有什么作用