我有一个持有标志的整数,它有一组现有的可能标志:
#define MAIL_ADDR_FROM 0x0001 /* address field contains the from address */
#define MAIL_ADDR_TO 0x0002 /* address field contains the to address */
#define MAIL_SEEN 0x0004 /* message has been read by the user */
#define MAIL_ATTACH 0x0008 /* message has an attachment */
#define MAIL_IMP_HIGH 0x0010 /* message is of high importance */
#define MAIL_IMP_LOW 0x0020 /* message is of low importance */
#define MAIL_FLAGGED 0x0040 /* message has been flagged */
#define MAIL_REPLIED 0x0080 /* message has been replied to */
#define MAIL_DRAFT 0x0100 /* message is a draft */
#define MAIL_NEW 0x0200 /* message is new */
#define MAIL_DELETED 0x8000 /* message is deleted */
我需要添加一个新的:
#define MAIL_SPAM 0x???? /* message is spam */
现有标志列表从 0x0200 一直跳到 0x8000 是否有原因?我的理解是我的新标志的可用值是 0x0400、0x0800 和 0x1000-0x4000。我是否误解了这些位集的工作原理?