我在无法编辑(不允许)的头文件中定义了以下结构:
struct Programma
{
enum {SERIE, FILM} programmaType;
char* titel;
char* zender;
time_t start;
time_t einde;
char* review;
union
{
Serie* serie;
Film* film;
} typeData;
};
我试过了:
Programma asd;
asd.programmaType = SERIE; //Error: identifier 'SERIE' is undefined
asd.programmaType = 0; //Error: a value of type 'int'cannot be assigned to an entity of type 'enum PRogramma::<unnamed>
并在一个函数中使用指向 Programma 结构的指针作为替换“。”的参数 通过'->',这给了我同样的错误。
我想我正在做与此处建议的相同的事情(如何在 ANSI C 中的结构中使用枚举?),但我无法停止收到随机错误。
编辑:出于某种原因,当我在 Visual Studio 中键入 asd 时。通常的下拉框会出现,但有一个“Typedata”以及“SERIE”和“FILM”的选项。就我个人而言,我认为结构的声明有问题,但它是给定的,我不应该编辑它。
编辑编辑:我正在 Visual Studio 2008 中创建一个 C++ 项目,但每个源文件都是 .h 或 .c。这就是我们被教导为“C”的内容,但我开始怀疑这实际上是多么真实。