+ -
当前位置:首页 → 问答吧 → "struct tcp_sock *tp = tcp_sk(sk);" 这个语句谁能帮我解释一下嘛?谢谢。

"struct tcp_sock *tp = tcp_sk(sk);" 这个语句谁能帮我解释一下嘛?谢谢。

时间:2010-03-25

来源:互联网

1、struct sock *sk

2、struct tcp_sock *tp = tcp_sk(sk);

3、
static inline struct tcp_sock *tcp_sk(const struct sock *sk)
{
return (struct tcp_sock *)sk;
}

感觉很难理解啊,sock 和 tcp_sock 类型是不一样的,为什么要这样进行强制转换呢? 这样做取出来的数据不就乱了嘛? 这样做有什么意义吗?

作者: ns2linux   发布时间: 2010-03-25

返回的都是一个int的数值,同一块的内存地址,只是告诉了调用者这块内存的类型是tcp_sock的类型而已,既然能转换就有意义。

作者: hefe   发布时间: 2010-03-25

你可以理解成把sk构造成 tcp_sk

作者: easycat   发布时间: 2010-04-06

热门下载

更多