[英]What does this piece of C++ code do?
我正在阅读WinSock教程,并且注意到以下代码行:
bind(listener, (SOCKADDR*)(&clientinfo), sizeof(clientinfo))
侦听器是SOCKET
对象,clientinfo是SOCKADDR_IN
对象。
我知道&
是“ address-of”运算符,而*
是引用运算符。 我注意到它看起来类似于在C#中进行转换。
(SOCKADDR*)(&clientinfo)
在该函数的上下文中是什么意思?
(&clientinfo)
需要的地址clientinfo
和(SOCKADDR*)
类型转换这对指针SOCKADDR
在C++
,我更喜欢使用static_cast<SOCKADDR*>(&clientinfo)
您可以在此处阅读有关static_cast的更多信息。
是演员 它将指向SOCKADDR_IN的指针转换为指向SOCKADDR的指针。 这两种类型恰好是兼容的。
基本上,这是用C完成多态的方式,而bind
是C API。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.