为什么既要使用匿名枚举又要为常量定义宏?
Why use both anonymous enum and define macros for constants?
为什么 netinet/in.h 以这种方式定义常量?
enum
{
IPPROTO_IP = 0,
#define IPPROTO_IP IPPROTO_IP
IPPROTO_HOPOPTS = 0,
#define IPPROTO_HOPOPTS IPPROTO_HOPOPTS
IPPROTO_ICMP = 1,
#define IPPROTO_ICMP IPPROTO_ICMP
IPPROTO_IGMP = 2,
...
};
可能还有其他代码依赖 #ifdef IPPROTO_IP
等
为什么 netinet/in.h 以这种方式定义常量?
enum
{
IPPROTO_IP = 0,
#define IPPROTO_IP IPPROTO_IP
IPPROTO_HOPOPTS = 0,
#define IPPROTO_HOPOPTS IPPROTO_HOPOPTS
IPPROTO_ICMP = 1,
#define IPPROTO_ICMP IPPROTO_ICMP
IPPROTO_IGMP = 2,
...
};
可能还有其他代码依赖 #ifdef IPPROTO_IP
等