Abr*_*ile 0 c c++ arrays initialization
我所有的代码都取自C项目.我无法在g ++下以任何方式编译它.
我该怎么办?
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"},
};
Run Code Online (Sandbox Code Playgroud)
以下编译为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; }
Run Code Online (Sandbox Code Playgroud)
编辑:其他人已经注意到ID_VALUE_A并且ID_VALUE_B是相同的值,即2.这可能是您的代码中的错误.但是,gcc接受了这一点.
干杯&hth.,