Следующие скомпилированы как C99 (примечание: это не относится к C89):
enum MyEnumID {
MyEnumA, MyEnumB
};
enum EnumIndexID{
ID_VALUE_A=2,
ID_VALUE_B=2
};
struct newtype {
enum MyEnumID eid;
const char *name;
} table[] = {
[ID_VALUE_A] = { MyEnumA, "ID_MSG_HeartbeatReq"},
[ID_VALUE_B] = { MyEnumB, "ID_MSG_HeartbeatReq"},
};
int main() { return 0; }
EDIT : другие отметили, что ID_VALUE_A
и ID_VALUE_B
- это одно и то же значение, а именно 2. Возможно, это ошибка в вашем коде. Однако gcc принимает это.
Приветствия & hth.,