这段C++代码有什么作用?
What does this piece of C++ code do?
我正在阅读 WinSock 教程,我注意到以下代码行:
bind(listener, (SOCKADDR*)(&clientinfo), sizeof(clientinfo))
listener 是一个 SOCKET
对象,clientinfo 是一个 SOCKADDR_IN
对象。
我知道 &
是 "address-of" 运算符,而 *
是顺从运算符。我注意到它看起来类似于 C# 中的转换。
(SOCKADDR*)(&clientinfo)
在该函数的上下文中是什么意思?
(&clientinfo)
获取 clientinfo
和 (SOCKADDR*)
typecasts 的地址指向 SOCKADDR
在C++
中,我更愿意使用static_cast<SOCKADDR*>(&clientinfo)
您可以阅读有关 static_cast here 的更多信息。
这是演员阵容。它将指向 SOCKADDR_IN 的指针转换为指向 SOCKADDR 的指针。这两种类型恰好是兼容的。
这基本上就是在 C 中实现多态性的方式,bind
是一个 C API。
我正在阅读 WinSock 教程,我注意到以下代码行:
bind(listener, (SOCKADDR*)(&clientinfo), sizeof(clientinfo))
listener 是一个 SOCKET
对象,clientinfo 是一个 SOCKADDR_IN
对象。
我知道 &
是 "address-of" 运算符,而 *
是顺从运算符。我注意到它看起来类似于 C# 中的转换。
(SOCKADDR*)(&clientinfo)
在该函数的上下文中是什么意思?
(&clientinfo)
获取 clientinfo
和 (SOCKADDR*)
typecasts 的地址指向 SOCKADDR
在C++
中,我更愿意使用static_cast<SOCKADDR*>(&clientinfo)
您可以阅读有关 static_cast here 的更多信息。
这是演员阵容。它将指向 SOCKADDR_IN 的指针转换为指向 SOCKADDR 的指针。这两种类型恰好是兼容的。
这基本上就是在 C 中实现多态性的方式,bind
是一个 C API。