gpt4 book ai didi

c - 在 C 中为结构中的枚举赋值

转载 作者:太空狗 更新时间:2023-10-29 14:56:28 25 4
gpt4 key购买 nike

我在头文件中定义了以下结构,我无法编辑(不允许):

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 结构的指针作为参数替换“.”通过'->',这给了我同样的错误。

我想我正在做与这里建议的相同的事情 ( How to use enum within a struct in ANSI C? ),但我无法停止出现随机错误。

编辑:出于某种原因,当我在 Visual Studio 中键入 asd 时。出现通常的下拉框,但有一个选项用于“Typedata”以及“SERIE”和“FILM”。我个人认为结构的声明有问题,但它已经给出,我不应该编辑它。

编辑 编辑:我正在 Visual Studio 2008 中创建一个 C++ 项目,但每个源文件都是 .h 或 .c。这就是我们被教导为“C”的内容,但我开始怀疑这到底有多真实。

最佳答案

从错误消息来看,您实际上没有使用 C 程序,而是使用 C++ 程序。为此,您必须使用作用域运算符 :: ,如

asd.programmaType = Programma::SERIE;

关于c - 在 C 中为结构中的枚举赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15204452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com