C语言结构类型转换,发现自己没办法理解了~~~恳请大神拍醒~~~

2019-07-21 00:48发布

[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者所指向的变量所占用的内存空间不同~
恳请大神拍醒我.......
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。