打印

问一个C语言的问题

[复制链接]
216|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kaloulin|  楼主 | 2018-7-29 08:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
第一:
udp_server_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p,struct ip_addr *addr, u16_t port)
{        u8_t *buffer;
        struct ip_addr destAddr = *addr;
        struct pbuf *temp;
        u16_t i;
        temp=arg;

        buffer=p->payload;
        if(p != NULL)
        {
                for(i=0;i<p->len;i++)
                {
                        while((USART2->SR&0X40)==0);   
           USART_SendData(USART2,buffer);
        }
                udp_sendto(pcb,p,&destAddr,port);           
                pbuf_free(p);                                         
        }  
}

第二:
udp_server_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p,struct ip_addr *addr, u16_t port)
{        u8_t *buffer;
        struct ip_addr destAddr = *addr;
        struct pbuf *temp;
        u16_t i;
        temp=arg;

        
        if(p != NULL)
        {
                for(i=0;i<p->len;i++)
                {
                        while((USART2->SR&0X40)==0);
         USART_SendData(USART2,(p->payload));或者是USART_SendData(USART2,p->payload);
        }
                udp_sendto(pcb,p,&destAddr,port);  
                pbuf_free(p);                                         
        }  
}
为什么第一个可以编译通过,第二个就出现 error:  #852: expression must be a pointer to a complete object type。
可以帮我解释一下吗,如果我不想经历指针赋值这个操作,直接使用payload这个指针,我该怎么做呢?




下面是结构体的内容:
struct pbuf {
struct pbuf *next;
  void *payload;
  u16_t tot_len;
  u16_t len;
  u8_t flags;
  u16_t ref;
};

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

439

主题

448

帖子

0

粉丝