利用C语言预处理器形成链表-武汉宏鹏教育

时间:2012-12-31 栏目:java技术 阅读:0 作者:宏鹏教育宏鹏光谷校区

  【利用C语言预处理器形成链表-武汉宏鹏教育】利用C语言预处理器的顺序Parse特性形成了一个链表。技巧都在IPPROTO_PREVIOUS 宏,引用#define以及#undefine,形成一个链表赋值给inet_protocol_base .

  #define IPPROTO_PREVIOUS NULL

  #ifdef CONFIG_IP_MULTICAST

  static struct inet_protocol igmp_protocol =

  {

  igmp_rcv, /* IGMP handler */

  NULL, /* IGMP error control */

  IPPROTO_PREVIOUS, /* next */

  IPPROTO_IGMP, /* protocol ID */

  0, /* copy */

  NULL, /* data */

  "IGMP" /* name */

  };

  #undef IPPROTO_PREVIOUS

  #define IPPROTO_PREVIOUS &igmp_protocol

  #endif

  static struct inet_protocol tcp_protocol =

  {

  tcp_v4_rcv, /* TCP handler */

  tcp_v4_err, /* TCP error control */

  IPPROTO_PREVIOUS,

  IPPROTO_TCP, /* protocol ID */

  0, /* copy */

  NULL, /* data */

  "TCP" /* name */

  };

  #undef IPPROTO_PREVIOUS

  #define IPPROTO_PREVIOUS &tcp_protocol

  static struct inet_protocol udp_protocol =

  {

  udp_rcv, /* UDP handler */

  udp_err, /* UDP error control */

  IPPROTO_PREVIOUS, /* next */

  IPPROTO_UDP, /* protocol ID */

  0, /* copy */

  NULL, /* data */

  "UDP" /* name */

  };

  #undef IPPROTO_PREVIOUS

  #define IPPROTO_PREVIOUS &udp_protocol

  static struct inet_protocol icmp_protocol =

  {

  icmp_rcv, /* ICMP handler */

  NULL, /* ICMP error control */

  IPPROTO_PREVIOUS, /* next */

  IPPROTO_ICMP, /* protocol ID */

  0, /* copy */

  NULL, /* data */

  "ICMP" /* name */

  };

  #undef IPPROTO_PREVIOUS

  #define IPPROTO_PREVIOUS &icmp_protocol

  struct inet_protocol *inet_protocol_base = IPPROTO_PREVIOUS;

        想了解更多java相关技术以及软件开发技术请继续关注武汉宏鹏教育官网。

专业老师指导

赵老师

赵老师

从事IT教育培训十年有余,致力于帮助广大学子找到适合自己的专业

立即在线咨询

培训咨询客服

陈老师

陈老师

IT培训专业客服,用自己的真诚解决了无数学子的困惑

立即在线咨询

热门课程任你选,成长蜕变看的见

课程余量有限,即将截止报名!查看详情