请各位朋友告诉我,下面的结构定义是怎么回事???
struct pbuf {
  struct pbuf *next;
  
  /* high 4 bits, flags, low 4 bits reference count */
  u8_t flags, ref;
  void *payload;
  
  /* Total length of buffer + additionally chained buffers. */
  u16_t tot_len;
  /* Length of this buffer. */
  u16_t len;  
};
我主要是不明白,在这个结构中又有一个struct pbuf *next; 这是什么意思???
希望各位朋友帮我解释一下!!!

解决方案 »

  1.   

    u8_t flags, ref;
    u16_t tot_len;
    是什么意思?
      

  2.   

    u8_t  8 bit unsighed int  , = unsigned char
    u16_t  = unsigned short
      

  3.   

    结构链表的定义,next用于指向下一个节点
      

  4.   

    结构链表的定义,next用于指向下一个节点
      

  5.   

    通过next就把各个节点连接起来了,形成了链表
      

  6.   

    请各位朋友告诉我,下面的结构定义是怎么回事???
    struct pbuf {
      struct pbuf *next;
      
      /* high 4 bits, flags, low 4 bits reference count */
      u8_t flags, ref;
      void *payload;
      
      /* Total length of buffer + additionally chained buffers. */
      u16_t tot_len;
      /* Length of this buffer. */
      u16_t len;  
    };
    我主要是不明白,在这个结构中又有一个struct pbuf *next; 这是什么意思???
    希望各位朋友帮我解释一下!!!
      

  7.   

    是链表,可以使一个结构元素指向另一个。如:
    struct NODE
    {
       int value;
       struct NODE* pNext;
    }struct NODE item1,item2;
    item1.pNext=&item2;
      

  8.   

    不是已经说清楚了吗?
    是指向自身的指针,主要用于构成链表
    struct pbuf {
      struct pbuf *next;
      
      /* high 4 bits, flags, low 4 bits reference count */
      u8_t flags, ref;
      void *payload;
      
      /* Total length of buffer + additionally chained buffers. */
      u16_t tot_len;
      /* Length of this buffer. */
      u16_t len;  
    }aaa,*bbb;bbb c1,c2,c3;
    初始化c1,c2,c3;
    c1->next=c2;
    c2->next=c3;
    则现在就构成了一个连表
    c1->c2->c3;
    明白了吧
      

  9.   

    不是已经说清楚了吗?
    是指向自身的指针,主要用于构成链表
    struct pbuf {
      struct pbuf *next;
      
      /* high 4 bits, flags, low 4 bits reference count */
      u8_t flags, ref;
      void *payload;
      
      /* Total length of buffer + additionally chained buffers. */
      u16_t tot_len;
      /* Length of this buffer. */
      u16_t len;  
    }aaa,*bbb;bbb c1,c2,c3;
    初始化c1,c2,c3;
    c1->next=c2;
    c2->next=c3;
    则现在就构成了一个连表
    c1->c2->c3;
    明白了吧
      

  10.   

    结构链表的定义,next用于指向下一个节点,找一本数据结构好好看看吧。