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

标签 c

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

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/

相关文章:

c - 使用 execve() 运行子进程的环境变量

C 信号不能正常工作

c - 经常使用的结构变量。为什么要保持领先地位?任何性能增益?

c - C 库周围的 Ruby 扩展包装器无法加载已安装的库

c++ - 编译 C 和 C++ 代码时指定 -std

c - 设置 R 包中动态链接库的目录路径

c - 这是 C 标准中整数类型符号位定义的错误吗?

C - Pthreads mutex 和一般的头痛

c - select()中的问题并最终发送信号SIGUSR1(C语言)

c - 为什么我的原始套接字没有被创建?