(struct sockaddr *)& servaddr是什么意思?

时间:2012-11-23 16:55:01

标签: c sockets

我遇到过这段代码:

(stuct sockadrr*)&servaddr 

这是什么意思?你以某种方式将结构转换为servaddr

我只想弄清楚这段代码的语法及其在C语言中的含义。

2 个答案:

答案 0 :(得分:3)

  

你以某种方式将结构转换为servaddr?

不,反之,您将servaddr的地址转换为指向struct sockaddr的指针。

如果servaddr的类型为foo&servaddrfoo*,则指向foo。如果你调用一个期望指向struct sockaddr的函数,你需要强制转换它 - 如果类型兼容,那么将foo*作为struct sockaddr*传递就可以了。

答案 1 :(得分:2)

声明各种套接字函数将参数作为通用网络地址,您可以转换特定网络地址结构的地址(例如sockaddr_in),以便将其作为参数传递给函数。