gcc 4.7.2
c89
你好,
enum message_e {
SIP_CONNECTED = 1 << 0,
CALL_ACCEPTED = 1 << 1
};
在我的代码的不同部分设置位:
channel->base.message |= CALL_ACCEPTED;
channel->base.message |= SIP_CONNECTED;
稍后我想检查以确保两个位都已设置:
if((channel->base.message & SIP_CONNECTED) && (channel->base.message & CALL_ACCEPTED)) {
/* IF BOTH BITS ARE SET CALL_ACCEPTED and SIP_CONNECTED */
}
如果仅设置了这些位,我只想通过 if 语句。如果设置了 CALL_ACCEPTED 而没有设置 SIP_CONNECTED,反之亦然。
但是,如果只设置其中一个,它似乎会落入 if 语句。
非常感谢您的任何建议,