我遇到过这段代码:
(stuct sockadrr*)&servaddr
这是什么意思?你以某种方式将结构转换为servaddr
?
我只想弄清楚这段代码的语法及其在C语言中的含义。
答案 0 :(得分:3)
你以某种方式将结构转换为servaddr?
不,反之,您将servaddr
的地址转换为指向struct sockaddr
的指针。
如果servaddr
的类型为foo
,&servaddr
为foo*
,则指向foo
。如果你调用一个期望指向struct sockaddr
的函数,你需要强制转换它 - 如果类型兼容,那么将foo*
作为struct sockaddr*
传递就可以了。
答案 1 :(得分:2)
声明各种套接字函数将参数作为通用网络地址,您可以转换特定网络地址结构的地址(例如sockaddr_in
),以便将其作为参数传递给函数。