【发布时间】:2013-08-01 15:10:02
【问题描述】:
我讨厌定义。为了从旧代码库中尽可能多地消除它们,我需要依靠enum-hack 来定义包含数组的结构。不幸的是,当 C 项目包含有罪的 .h 文件时,我无法编译它。
typedef struct _P_O {
enum { MAXELEMENTS=10 };
P_O_U elem;
ULONG id[MAXELEMENTS];
USHORT nid;
} P_O, *PP_O;
这会产生错误C2208:
'type' : 没有使用此类型定义的成员
解析为的标识符 类型名称在聚合声明中,但编译器不能 声明一个成员。
OT:我讨厌使用 10 岁的编译器,还必须维护旧的 c 代码和糟糕的设计;不仅仅是定义:)
【问题讨论】:
-
你不能有两个称为
id的元素...这是转录问题还是真正的问题? -
转录错误,谢谢!!!
-
GCC 警告:
warning: declaration does not declare anything用于enum行。将enum放在struct之外就可以了。 -
@JonathanLeffler 的回答为我编译。
-
@JonathanLeffler 你应该让你的评论成为答案
标签: c visual-studio-2003