在linux-2.6.23中看到这样的定义,在enum里面,先定义IPPROTO_IP 其值,然后再用宏定义定义其为自身,想问一下这样使用的目的是什么,便于好看吗?代码如下:

linux-2.6.23/usr/include/netinet/in.h
 31 /* Standard well-defined IP protocols. */
 32 enum
 33 {
 34 IPPROTO_IP = 0, /* Dummy protocol for TCP. */
 35 #define IPPROTO_IP IPPROTO_IP
 36 IPPROTO_HOPOPTS = 0, /* IPv6 Hop-by-Hop options. */
 37 #define IPPROTO_HOPOPTS IPPROTO_HOPOPTS
 38 IPPROTO_ICMP = 1, /* Internet Control Message Protocol. */
 39 #define IPPROTO_ICMP IPPROTO_ICMP
 40 IPPROTO_IGMP = 2, /* Internet Group Management Protocol. */
 41 #define IPPROTO_IGMP IPPROTO_IGMP
。。。。。。。。。

推荐图书

  • Linux系统管理技术手册(第2版)


1个回答

便于后续代码如#ifdef IPPROTO_IP这样的引用吧。