繁体   English   中英

这段C ++代码做什么?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM