[mw_shl_code=c,true]#endif /* SO_REUSE */
lpcb = (struct tcp_pcb_listen *)memp_malloc(MEMP_TCP_PCB_LISTEN); /*lwip??????????tcp_pcb_listen?á??????ר???è??LISTEN×????????á????*/
if (lpcb == NULL) {
return NULL;
}
lpcb->callback_arg = pcb->callback_arg; /*??tcp_pcb????????±???tcp_pcb_listen????*/
lpcb->local_port = pcb->local_port;
lpcb->state = LISTEN; /*?è?????ì??×???*/
lpcb->prio = pcb->prio;
lpcb->so_options = pcb->so_options;
ip_set_option(lpcb, SOF_ACCEPTCONN);
lpcb->ttl = pcb->ttl;
lpcb->tos = pcb->tos;
ip_addr_copy(lpcb->local_ip, pcb->local_ip);
if (pcb->local_port != 0) {
TCP_RMV(&tcp_bound_pcbs, pcb); /*tcp_bound_pcbs(??°ó?¨?ê±?????±í),??tcp_bound_pcbs??±í???????????ì*/
}
memp_free(MEMP_TCP_PCB, pcb); /*??·?????????*/
#if LWIP_CALLBACK_API
lpcb->accept = tcp_accept_null; /*???????§???????????????÷????*/
#endif /* LWIP_CALLBACK_API */
#if TCP_LISTEN_BACKLOG
lpcb->accepts_pending = 0;
lpcb->backlog = (backlog ? backlog : 1);
#endif /* TCP_LISTEN_BACKLOG */
TCP_REG(&tcp_listen_pcbs.pcbs, (struct tcp_pcb *)lpcb);/*如何理解这里的结构类型转换???*/
return (struct tcp_pcb *)lpcb;
}[/mw_shl_code]
按照小弟的理解:这里的lpcb指针已经被初始化了,它的类型是struct tcp_pcb_listen *,如何将它强制转换为struct tcp_pcb *,毕竟2者所指向的变量所占用的内存空间不同~
恳请大神拍醒我.......
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
例如:struct a
{
char a;
};
struct b
{
int a;
char b;
}
它们之间如何进行指针强制转换呢?恳请大神指教~
一周热门 更多>