正在了解Linux的epoll机制,epoll.h 声明了如下的枚举:
enum EPOLL_EVENTS
{
EPOLLIN = 0x001,
#define EPOLLIN EPOLLIN
EPOLLPRI = 0x002,
#define EPOLLPRI EPOLLPRI
EPOLLOUT = 0x004
#define EPOLLOUT EPOLLOUT
};
enum EPOLL_EVENTS
{
EPOLLIN = 0x001,
#define EPOLLIN EPOLLIN
EPOLLPRI = 0x002,
#define EPOLLPRI EPOLLPRI
EPOLLOUT = 0x004
#define EPOLLOUT EPOLLOUT
};
请问: 每个枚举都跟着 #define A A ,这是什么目的,仅仅是服务于下文的#ifndef A 吗? 还有其他目的?
to force compilers to throw "redefine" error in case you accidentally redefine those values directly
in your source code or indrectly through a jungle of headers, easier to debug.