CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

请各位大侠分析一段代码,放分200

楼主Galatin(找个女朋友,还是养条狗)2006-03-09 09:27:45 在 C/C++ / C语言 提问

代码是路由协议AODV中的一段,大致是做返回错误分析处理的  
  贴在如下,请帮忙逐句注释,牵涉到其他文件中的函数过程中猜测意思即可  
   
  顶就有分,解决后最佳答案加放100,谢谢  
   
  #ifdef   NS_PORT  
  #include   "ns/aodv-uu.h"  
  #else  
  #include   <netinet/in.h>  
  #include   "aodv_rerr.h"  
  #include   "routing_table.h"  
  #include   "aodv_socket.h"  
  #include   "aodv_timeout.h"  
  #include   "defs.h"  
  #include   "debug.h"  
  #include   "params.h"  
   
  #endif  
   
  RERR   *NS_CLASS   rerr_create(u_int8_t   flags,   struct   in_addr   dest_addr,  
        u_int32_t   dest_seqno)  
  {  
          RERR   *rerr;  
   
          DEBUG(LOG_DEBUG,   0,   "Assembling   RERR   about   %s   seqno=%d",  
      ip_to_str(dest_addr),   dest_seqno);  
   
          rerr   =   (RERR   *)   aodv_socket_new_msg();  
          rerr->type   =   AODV_RERR;  
          rerr->n   =   (flags   &   RERR_NODELETE   ?   1   :   0);  
          rerr->res1   =   0;  
          rerr->res2   =   0;  
          rerr->dest_addr   =   dest_addr.s_addr;  
          rerr->dest_seqno   =   htonl(dest_seqno);  
          rerr->dest_count   =   1;  
   
          return   rerr;  
  }  
   
  void   NS_CLASS   rerr_add_udest(RERR   *   rerr,   struct   in_addr   udest,  
            u_int32_t   udest_seqno)  
  {  
          RERR_udest   *ud;  
   
          ud   =   (RERR_udest   *)   ((char   *)   rerr   +   RERR_CALC_SIZE(rerr));  
          ud->dest_addr   =   udest.s_addr;  
          ud->dest_seqno   =   htonl(udest_seqno);  
          rerr->dest_count++;  
  }  
   
   
  void   NS_CLASS   rerr_process(RERR   *   rerr,   int   rerrlen,   struct   in_addr   ip_src,  
        struct   in_addr   ip_dst)  
  {  
          RERR   *new_rerr   =   NULL;  
          RERR_udest   *udest;  
          rt_table_t   *rt;  
          u_int32_t   rerr_dest_seqno;  
          struct   in_addr   udest_addr,   rerr_unicast_dest;  
          int   i;  
   
          rerr_unicast_dest.s_addr   =   0;  
   
          DEBUG(LOG_DEBUG,   0,   "ip_src=%s",   ip_to_str(ip_src));  
   
          log_pkt_fields((AODV_msg   *)   rerr);  
   
          if   (rerrlen   <   ((int)   RERR_CALC_SIZE(rerr)))   {  
  alog(LOG_WARNING,   0,   __FUNCTION__,  
            "IP   data   too   short   (%u   bytes)   from   %s   to   %s.   Should   be   %d   bytes.",  
            rerrlen,   ip_to_str(ip_src),   ip_to_str(ip_dst),  
            RERR_CALC_SIZE(rerr));  
   
  return;  
          }  
   
          /*   Check   which   destinations   that   are   unreachable.     */  
          udest   =   RERR_UDEST_FIRST(rerr);  
   
          while   (rerr->dest_count)   {  
   
  udest_addr.s_addr   =   udest->dest_addr;  
  rerr_dest_seqno   =   ntohl(udest->dest_seqno);  
  DEBUG(LOG_DEBUG,   0,   "unreachable   dest=%s   seqno=%lu",  
              ip_to_str(udest_addr),   rerr_dest_seqno);  
   
  rt   =   rt_table_find(udest_addr);  
   
  if   (rt   &&   rt->state   ==   VALID   &&   rt->next_hop.s_addr   ==   ip_src.s_addr)   {  
   
          /*   Checking   sequence   numbers   here   is   an   out   of   draft  
            *   addition   to   AODV-UU.   It   is   here   because   it   makes   a   lot  
            *   of   sense...   */  
          if   (0   &&   (int32_t)   rt->dest_seqno   >   (int32_t)   rerr_dest_seqno)   {  
  DEBUG(LOG_DEBUG,   0,   "Udest   ignored   because   of   seqno");  
  udest   =   RERR_UDEST_NEXT(udest);  
  rerr->dest_count--;  
  continue;  
          }  
          DEBUG(LOG_DEBUG,   0,   "removing   rte   %s   -   WAS   IN   RERR!!",  
      ip_to_str(udest_addr));  
   
  #ifdef   NS_PORT  
          interfaceQueue((nsaddr_t)   udest_addr.s_addr,   IFQ_DROP_BY_DEST);  
  #endif  
          /*   Invalidate   route:   */  
          if   (!rerr->n)   {  
  rt_table_invalidate(rt);  
          }  
          /*   (a)   updates   the   corresponding   destination   sequence   number  
                with   the   Destination   Sequence   Number   in   the   packet,   and   */  
          rt->dest_seqno   =   rerr_dest_seqno;  
   
          /*   (d)   check   precursor   list   for   emptiness.   If   not   empty,   include  
                the   destination   as   an   unreachable   destination   in   the  
                RERR...   */  
          if   (rt->nprec   &&   !(rt->flags   &   RT_REPAIR))   {  
   
  if   (!new_rerr)   {  
          u_int8_t   flags   =   0;  
   
          if   (rerr->n)  
  flags   |=   RERR_NODELETE;  
   
          new_rerr   =   rerr_create(flags,   rt->dest_addr,  
        rt->dest_seqno);  
          DEBUG(LOG_DEBUG,   0,   "Added   %s   as   unreachable,   seqno=%lu",  
      ip_to_str(rt->dest_addr),   rt->dest_seqno);  
   
          if   (rt->nprec   ==   1)  
  rerr_unicast_dest   =  
          FIRST_PREC(rt->precursors)->neighbor;  
   
  }   else   {  
          /*   Decide   whether   new   precursors   make   this   a   non   unicast   RERR   */  
          rerr_add_udest(new_rerr,   rt->dest_addr,   rt->dest_seqno);  
   
          DEBUG(LOG_DEBUG,   0,   "Added   %s   as   unreachable,   seqno=%lu",  
      ip_to_str(rt->dest_addr),   rt->dest_seqno);  
   
          if   (rerr_unicast_dest.s_addr)   {  
  list_t   *pos2;  
  list_foreach(pos2,   &rt->precursors)   {  
          precursor_t   *pr   =   (precursor_t   *)   pos2;  
          if   (pr->neighbor.s_addr   !=   rerr_unicast_dest.s_addr)   {  
  rerr_unicast_dest.s_addr   =   0;  
  break;  
          }  
  }  
          }  
  }  
          }   else   {  
  DEBUG(LOG_DEBUG,   0,  
              "Not   sending   RERR,   no   precursors   or   route   in   RT_REPAIR");  
          }  
          /*   We   should   delete   the   precursor   list   for   all   unreachable  
                destinations.   */  
          if   (rt->state   ==   INVALID)  
  precursor_list_destroy(rt);  
  }   else   {  
          DEBUG(LOG_DEBUG,   0,   "Ignoring   UDEST   %s",   ip_to_str(udest_addr));  
  }  
  udest   =   RERR_UDEST_NEXT(udest);  
  rerr->dest_count--;  
          } /*   End   while()   */  
   
          /*   If   a   RERR   was   created,   then   send   it   now...   */  
          if   (new_rerr)   {  
   
  rt   =   rt_table_find(rerr_unicast_dest);  
   
  if   (rt   &&   new_rerr->dest_count   ==   1   &&   rerr_unicast_dest.s_addr)  
          aodv_socket_send((AODV_msg   *)   new_rerr,  
            rerr_unicast_dest,  
            RERR_CALC_SIZE(new_rerr),   1,  
            &DEV_IFINDEX(rt->ifindex));  
   
  else   if   (new_rerr->dest_count   >   0)   {  
          /*   FIXME:   Should   only   transmit   RERR   on   those   interfaces  
            *   which   have   precursor   nodes   for   the   broken   route   */  
          for   (i   =   0;   i   <   MAX_NR_INTERFACES;   i++)   {  
  struct   in_addr   dest;  
   
  if   (!DEV_NR(i).enabled)  
          continue;  
  dest.s_addr   =   AODV_BROADCAST;  
  aodv_socket_send((AODV_msg   *)   new_rerr,   dest,  
    RERR_CALC_SIZE(new_rerr),   1,   &DEV_NR(i));  
          }  
  }  
          }  
  } 问题点数:100、回复次数:54Top

1 楼Galatin(找个女朋友,还是养条狗)回复于 2006-03-09 09:51:18 得分 0

从语法上注释即可,谢谢啊----Top

2 楼Galatin(找个女朋友,还是养条狗)回复于 2006-03-09 10:47:39 得分 0

救命啊,这是段开源的代码  
   
  帮顶就有分,谢谢大家Top

3 楼piaochen_2002(执子之手,与子偕老!)回复于 2006-03-09 10:49:19 得分 0

不懂,帮顶.............Top

4 楼SK_MadFrog(平凡但不平庸的人)回复于 2006-03-09 12:42:50 得分 0

顶Top

5 楼ugg(逸学堂(exuetang.net))回复于 2006-03-09 12:50:27 得分 0

帮顶就有分,也帮你顶..Top

6 楼allensoso(死性不改)回复于 2006-03-09 12:51:53 得分 0

水平太低。。。只能帮顶下了。。Top

7 楼jinjiajie(leorio)回复于 2006-03-09 12:52:08 得分 0

顶...做读程序太累了,收个小分算了Top

8 楼discory(discory)回复于 2006-03-09 13:02:02 得分 0

我帮,顶,完全看不懂,呵呵Top

9 楼libiao_1985(libiao)回复于 2006-03-09 13:09:06 得分 0

我也顶哈哦   ~~~Top

10 楼ydfivy(我就是一送外卖的)回复于 2006-03-09 13:09:24 得分 0

老天爷呀.顶.Top

11 楼xiaohuoma7620(小火马)回复于 2006-03-09 14:15:36 得分 0

....................Top

12 楼wqtl_357(Step By Step!)回复于 2006-03-09 19:41:56 得分 0

自己好好分析下,能从中学到不少东西。Top

13 楼btc2005(小扬)回复于 2006-03-09 20:15:01 得分 0

顶啊   先顶再研究Top

14 楼minsavage(帆野)回复于 2006-03-09 20:53:33 得分 0

markTop

15 楼jixingzhong(瞌睡虫·星辰)回复于 2006-03-09 20:57:16 得分 0

顶   ...  
   
  ^_^  
   
  楼主是这个领域的么?  
  你分析起来比我们分析要轻松很多啊   ~Top

16 楼hotonion(菜鸟怎么变大牛呢?)回复于 2006-03-09 21:15:12 得分 0

完全不懂     帮顶Top

17 楼Sky_Killer(Sky_Killer)回复于 2006-03-09 22:00:00 得分 0

顶Top

18 楼0delphi(睡个舒服觉)回复于 2006-03-09 22:07:39 得分 0

这个世界太疯狂Top

19 楼ASCII945(崛起吧!)回复于 2006-03-09 22:13:47 得分 0

虽然不懂,不过还是帮你顶下Top

20 楼Galatin(找个女朋友,还是养条狗)回复于 2006-03-09 22:17:30 得分 0

晕倒,全是接小分的  
   
  继续上啊  
  明天解决不了也放分,大家平均分了Top

21 楼youranjianke(悠然剑客)回复于 2006-03-10 08:21:54 得分 0

复杂,看不懂Top

22 楼wqtl_357(Step By Step!)回复于 2006-03-10 08:40:08 得分 0

代码看起来很诱人!Top

23 楼ouyh12345(五岭散人)回复于 2006-03-10 08:42:24 得分 0

upTop

24 楼baggio1984(good good study ,day day up !)回复于 2006-03-10 08:43:50 得分 0

水平太低,接个小分Top

25 楼abblly(西边日出东边雨)回复于 2006-03-10 08:46:17 得分 0

貌似专业性很强,帮顶一下Top

26 楼terryjwf(开大奔的帅哥)回复于 2006-03-10 08:49:58 得分 0

哈哈,偶水平太菜鸟,友情up!Top

27 楼waveslide(waveslide)回复于 2006-03-10 10:58:36 得分 0

顶哈,顶哈Top

28 楼TZT_TZT(T小样T)回复于 2006-03-10 11:05:31 得分 0

水平太低。。。只能帮顶下了。。  
  Top

29 楼doway(john)回复于 2006-03-10 12:50:20 得分 0

UP   :)Top

30 楼yisong_net(李松)回复于 2006-03-10 13:06:48 得分 0

小样新来的吧,要有耐心,自己分析效率更高,收益更好~Top

31 楼aniude(重返荣耀)回复于 2006-03-10 13:09:12 得分 0

纯粹顶Top

32 楼sukyin()回复于 2006-03-10 13:46:59 得分 0

#ifdef   NS_PORT/*是否有定义NS端口,如果没有的话,包含下面那个头文件*/  
  #include   "ns/aodv-uu.h"  
  #else  
  #include   <netinet/in.h>/*输入*/  
  #include   "aodv_rerr.h"/*rerr头文件*/  
  #include   "routing_table.h"/*路由表*/  
  #include   "aodv_socket.h"/*aodv线程*/  
  #include   "aodv_timeout.h"/*aodv超时*/  
  #include   "defs.h"/*定义*/  
  #include   "debug.h"/*debug*/  
  #include   "params.h"/*参数*/  
   
  #endif  
  /*说明一下,因为很专业,所以RERR是什么都不知道。但是知道是一个结构。  
  用到的结构还有in_addr。从后面看,rerr应该是一种数据包。  
  */  
  /* 函数:创建rerr。  
  参数:unsigned   int   8位,入地址结构,unsigned   int   32位  
  */  
  RERR   *NS_CLASS   rerr_create(u_int8_t   flags,   /*标记*/  
        struct   in_addr   dest_addr,/*   目的地址*/  
        u_int32_t   dest_seqno)/*   目的序列序号*/  
  {  
          RERR   *rerr;/*定义RERR的一个指针*/  
   
          DEBUG(LOG_DEBUG,   0,   "Assembling   RERR   about   %s   seqno=%d",  
  ip_to_str(dest_addr),   dest_seqno);/*写log文件:把RERR集中到目的地址,序列号是seqno*/  
   
          rerr   =   (RERR   *)   aodv_socket_new_msg();/*调用aodv的socket新消息函数得到RERR的结构*/  
          rerr->type   =   AODV_RERR;/*以下6行赋值*/  
          rerr->n   =   (flags   &   RERR_NODELETE   ?   1   :   0);  
          rerr->res1   =   0;  
          rerr->res2   =   0;  
          rerr->dest_addr   =   dest_addr.s_addr;  
          rerr->dest_seqno   =   htonl(dest_seqno);  
          rerr->dest_count   =   1;  
   
          return   rerr;  
  }  
  /* 函数:rerr与不能到达地址的和      
  参数:结构RERR,入地址结构,unsigned   int   32位  
  */  
  void   NS_CLASS   rerr_add_udest(RERR   *   rerr,/*RERR指针*/  
    struct   in_addr   udest,/*不能到达地址*/  
    u_int32_t   udest_seqno)/*udest序号*/  
  {  
          RERR_udest   *ud;/*RERR_udest结构的一个指针*/  
   
          ud   =   (RERR_udest   *)   ((char   *)   rerr   +   RERR_CALC_SIZE(rerr));  
  /*这个好像是把rerr和重新分配空间的rerr相加,这样能得到新的空间大小*/  
          ud->dest_addr   =   udest.s_addr;/*目的地址赋值*/  
          ud->dest_seqno   =   htonl(udest_seqno);/*应该是新的编号*/  
          rerr->dest_count++;/*rerr中的目的数+1*/  
  }  
   
  /* 函数:rerr处理  
  参数:结构RERR,入地址结构,入地址结构  
  */  
  void   NS_CLASS   rerr_process(RERR   *   rerr,   /*RERR指针*/  
        int   rerrlen,   /*RERR长度*/  
        struct   in_addr   ip_src,/*源ip*/  
        struct   in_addr   ip_dst)/*目的ip*/  
  {  
          RERR   *new_rerr   =   NULL;/*新建空RERR指针*/  
          RERR_udest   *udest;/*RERR_udest结构的一个指针*/  
          rt_table_t   *rt;/*路由表结构指针*/  
          u_int32_t   rerr_dest_seqno;/*rerr目的序号*/  
      struct   in_addr   udest_addr,   rerr_unicast_dest;/*两个地址,前一个是udest地址,  
      后一个是rerr的唯一转换目的地址?又是猜的*/  
      int   i;/*循环变量*/  
       
      rerr_unicast_dest.s_addr   =   0;/*地址初值为0*/  
       
      DEBUG(LOG_DEBUG,   0,   "ip_src=%s",   ip_to_str(ip_src));/*写log文件,源ip*/  
       
      log_pkt_fields((AODV_msg   *)   rerr);/*log打包域?*/  
       
      if   (rerrlen   <   ((int)   RERR_CALC_SIZE(rerr)))   {/*如果输入的长度小于rerr分配的长度*/  
      alog(LOG_WARNING,   0,   __FUNCTION__,  
      "IP   data   too   short   (%u   bytes)   from   %s   to   %s.   Should   be   %d   bytes.",  
      rerrlen,   ip_to_str(ip_src),   ip_to_str(ip_dst),  
      RERR_CALC_SIZE(rerr));/*写log,ip数据太短,应该为多长*/  
       
      return;  
      }  
       
      /*   Check   which   destinations   that   are   unreachable.     */  
      udest   =   RERR_UDEST_FIRST(rerr);  
       
      while   (rerr->dest_count)   {/*如果rerr的目的数还大于0的话*/  
       
      udest_addr.s_addr   =   udest->dest_addr;/*赋值*/  
      rerr_dest_seqno   =   ntohl(udest->dest_seqno);  
      DEBUG(LOG_DEBUG,   0,   "unreachable   dest=%s   seqno=%lu",  
      ip_to_str(udest_addr),   rerr_dest_seqno);/*写log*/  
       
      rt   =   rt_table_find(udest_addr);/*路由表中间找这个不能到达的地址*/  
       
      if   (rt   &&   rt->state   ==   VALID   &&   rt->next_hop.s_addr   ==   ip_src.s_addr)   {  
      /*如果路由表中查到的地址是合法的,而且下一跳的地址就是源地址的话*/  
       
      /*   Checking   sequence   numbers   here   is   an   out   of   draft  
      *   addition   to   AODV-UU.   It   is   here   because   it   makes   a   lot  
      *   of   sense...   */  
      if   (0   &&   (int32_t)   rt->dest_seqno   >   (int32_t)   rerr_dest_seqno)   {  
      /*这个if不知道是搞什么用的,0   &&   的话都是0了啊,从英文注释看,是测试  
      序列号的,可能实际用的时候要把0   &&   删除吧。*/  
      DEBUG(LOG_DEBUG,   0,   "Udest   ignored   because   of   seqno");  
      udest   =   RERR_UDEST_NEXT(udest);  
      rerr->dest_count--;  
      continue;  
      }  
      DEBUG(LOG_DEBUG,   0,   "removing   rte   %s   -   WAS   IN   RERR!!",  
      ip_to_str(udest_addr));  
  /*下面还有一段*/ Top

33 楼sukyin()回复于 2006-03-10 13:47:11 得分 0

#ifdef   NS_PORT/*如果定义了端口的话呢,就要把不可达地址在端口排队*/  
      interfaceQueue((nsaddr_t)   udest_addr.s_addr,   IFQ_DROP_BY_DEST);  
  #endif  
      /*   Invalidate   route:   */  
      if   (!rerr->n)   {  
      rt_table_invalidate(rt);/*不合法检验*/  
      }  
      /*   (a)   updates   the   corresponding   destination   sequence   number  
      with   the   Destination   Sequence   Number   in   the   packet,   and   */  
      rt->dest_seqno   =   rerr_dest_seqno;  
       
      /*   (d)   check   precursor   list   for   emptiness.   If   not   empty,   include  
      the   destination   as   an   unreachable   destination   in   the  
      RERR...   */  
      if   (rt->nprec   &&   !(rt->flags   &   RT_REPAIR))   {  
      /*如果precursor   list不是空,并且标记是RT_REPAIR(路由修复)*/  
      if   (!new_rerr)   {/*如果新rerr分配成功*/  
      u_int8_t   flags   =   0;/*标记置零*/  
       
      if   (rerr->n)/*如果合法*/  
      flags   |=   RERR_NODELETE;/*标记设置为rerr勿删(简单的或运算  
      前面用的是与运算)*/  
      new_rerr   =   rerr_create(flags,   rt->dest_addr,  
      rt->dest_seqno);/*调用上面的创建rerr的函数*/  
      DEBUG(LOG_DEBUG,   0,   "Added   %s   as   unreachable,   seqno=%lu",  
      ip_to_str(rt->dest_addr),   rt->dest_seqno);  
       
      if   (rt->nprec   ==   1)/*如果precursor   list不是空*/  
      rerr_unicast_dest   =  
      FIRST_PREC(rt->precursors)->neighbor;  
      /*unicast地址设置为FIRST_PREC返回参数的neighbor属性*/  
      }   else   {/*如果如果precursor   list是空*/  
      /*   Decide   whether   new   precursors   make   this   a   non   unicast   RERR   */  
      rerr_add_udest(new_rerr,   rt->dest_addr,   rt->dest_seqno);  
      /*调用上面的相加函数把路由表中找到的目的地址和目的序号放到new   rerr中*/  
      DEBUG(LOG_DEBUG,   0,   "Added   %s   as   unreachable,   seqno=%lu",  
      ip_to_str(rt->dest_addr),   rt->dest_seqno);  
       
      if   (rerr_unicast_dest.s_addr)   {/*如果unicast目的的地址不是空的话*/  
      list_t   *pos2;/*列表的指针*/  
      list_foreach(pos2,   &rt->precursors)   {/*这里不知道干嘛的!*/  
      precursor_t   *pr   =   (precursor_t   *)   pos2;  
      if   (pr->neighbor.s_addr   !=   rerr_unicast_dest.s_addr)   {  
      rerr_unicast_dest.s_addr   =   0;  
      break;  
      }  
      }  
      }  
      }  
      }   else   {  
      DEBUG(LOG_DEBUG,   0,  
      "Not   sending   RERR,   no   precursors   or   route   in   RT_REPAIR");  
      }  
      /*   We   should   delete   the   precursor   list   for   all   unreachable  
      destinations.   */  
      if   (rt->state   ==   INVALID)/*不合法则destroy*/  
      precursor_list_destroy(rt);  
      }   else   {/*如果地址合法*/  
      DEBUG(LOG_DEBUG,   0,   "Ignoring   UDEST   %s",   ip_to_str(udest_addr));  
      }  
      udest   =   RERR_UDEST_NEXT(udest);/*取next*/  
      rerr->dest_count--;  
      }/*   End   while()   */  
       
      /*   If   a   RERR   was   created,   then   send   it   now...   */  
      if   (new_rerr)   {  
       
      rt   =   rt_table_find(rerr_unicast_dest);/*路由表中找不可达地址*/  
       
      if   (rt   &&   new_rerr->dest_count   ==   1   &&   rerr_unicast_dest.s_addr)  
      /*如果有不可达地址,并且新rerr中目的地址唯一,并且rerr的unicast目的也有的话*/  
      aodv_socket_send((AODV_msg   *)   new_rerr,  
      rerr_unicast_dest,  
      RERR_CALC_SIZE(new_rerr),   1,  
      &DEV_IFINDEX(rt->ifindex));/*发送*/  
       
      else   if   (new_rerr->dest_count   >   0)   {/*如果新rerr中目的地址数大于0*/  
      /*   FIXME:   Should   only   transmit   RERR   on   those   interfaces  
      *   which   have   precursor   nodes   for   the   broken   route   */  
      for   (i   =   0;   i   <   MAX_NR_INTERFACES;   i++)   {  
      struct   in_addr   dest;  
       
      if   (!DEV_NR(i).enabled)  
      continue;  
      dest.s_addr   =   AODV_BROADCAST;/*采用广播方式发送*/  
      aodv_socket_send((AODV_msg   *)   new_rerr,   dest,  
      RERR_CALC_SIZE(new_rerr),   1,   &DEV_NR(i));?  
      }  
      }  
      }  
  }  
  Top

34 楼sukyin()回复于 2006-03-10 13:48:56 得分 0

copy到vc下,或者文本编辑器editplus,ultraedit什么的里面就能清楚了Top

35 楼Ninstein(www.Ninstein.Com)回复于 2006-03-10 14:20:23 得分 0

JFTop

36 楼xsp919(末末)回复于 2006-03-10 16:22:12 得分 0

顶~~   看得头大了~~不懂。Top

37 楼bbbbcccc()回复于 2006-03-10 16:47:41 得分 0

http://valenhua.go3.icpcn.com/Top

38 楼zh1369(口一华)回复于 2006-03-10 16:53:53 得分 0

这也能注释,nb!  
  Top

39 楼Free_Wind22(还没想好...)回复于 2006-03-10 18:40:06 得分 0

牛X  
     
  注释了也看不懂..  
   
  帮顶..Top

40 楼co_diy(开创智能时代)回复于 2006-03-10 19:27:23 得分 0

upTop

41 楼xust999()回复于 2006-03-10 19:32:02 得分 0

顶Top

42 楼jie_cs()回复于 2006-03-10 19:50:11 得分 0

顶一下  
  Top

43 楼cattlenzq(吃狼的豆腐(不要给分了,散起来真麻烦!))回复于 2006-03-10 20:30:45 得分 0

顶Top

44 楼bombwang(王)回复于 2006-03-10 20:38:13 得分 0

水平太低。。。只能帮顶下了。。Top

45 楼zncn2(embedded system)回复于 2006-03-10 23:09:00 得分 0

markTop

46 楼ccs02287(☆兜兜里有糖☆偶滴兜兜里有糖,你和我玩不?)回复于 2006-03-10 23:34:57 得分 0

前来学习INGTop

47 楼fwh_danny(风)回复于 2006-03-10 23:59:11 得分 0

学习中。。。。不错Top

48 楼wangmuqq88(挥着翅膀的尼姑)回复于 2006-03-12 00:44:18 得分 0

欢迎加群20641933,欢迎大家共同交流.提高!(不怕不会,就怕不学.)Top

49 楼ttttjava()回复于 2006-03-13 09:04:41 得分 0

学习Top

50 楼abillchen(依然)回复于 2006-03-13 09:38:49 得分 0

学习Top

51 楼hehe(呵呵)回复于 2006-03-13 17:05:49 得分 0

niu   ,bu   dong   !Top

52 楼sparrow009(奇疯)回复于 2006-03-13 23:11:05 得分 0

顶!  
  呵呵Top

53 楼wangmuqq88(挥着翅膀的尼姑)回复于 2006-03-13 23:24:27 得分 0

欢迎大家加群(C/C++)20641933欢迎大家共同学习交流Top

54 楼michael_g_hu(一代风云)回复于 2006-03-14 00:20:03 得分 0

太多了,帮你顶一下算了  
  Top

相关问题

  • 分析源代码!
  • 分析代码!!急
  • 各位老大给分析一下面的代码,多谢了
  • 分析一段代码
  • 请教代码分析
  • 求助分析代码!
  • 原代码分析(100)
  • 请分析下面代码!
  • 简单源代码分析
  • 急,该代码分析!!!!!!!!!!!!!!!!!!!!!!

关键词

  • debug
  • 函数
  • 结构
  • rerr
  • udest
  • seqno
  • dest
  • aodv
  • rt
  • addr

得分解答快速导航

  • 帖主:Galatin

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo