Разрешено ли подчеркивание в метках case?

В каком-то заголовочном файле, который я не могу изменить, у меня есть следующий набор определений:

#define FLAG1                      (0x0000_0001)
#define FLAG2                      (0x0000_0002)
...

Затем в моем коде я использую их в переключателе:

switch (aaa) {
    case FLAG1:
    ....

    case FLAG2:
    ....
}

Как В результате Coverity сообщает о 2 дефектах на каждую этикетку ящика:

RW.EXP_RPAREN: 
Event exp_rparen: expected a ")"

RW.CASE_LABEL_CONFLICT:
Event case_label_conflict: case label value has already appeared in 
this switch at line XX

Что не так с этими этикетками? Нарушает ли это стандарты C?

5
задан pmod 10 February 2011 в 19:07
поделиться