gpt4 book ai didi

c - 如何在C中定义枚举类型(enum)?

转载 作者:太空狗 更新时间:2023-10-29 16:13:40 25 4
gpt4 key购买 nike

我不确定使用 C 枚举的正确语法是什么。我有以下代码:

enum {RANDOM, IMMEDIATE, SEARCH} strategy;
strategy = IMMEDIATE;

但是编译不通过,报错如下:

error: conflicting types for ‘strategy’
error: previous declaration of ‘strategy’ was here

我做错了什么?

最佳答案

值得指出的是,您不需要 typedef。你可以像下面那样做

enum strategy { RANDOM, IMMEDIATE, SEARCH };
enum strategy my_strategy = IMMEDIATE;

您是否喜欢 typedef 是一个风格问题。没有它,如果要引用枚举类型,就需要使用enum strategy。有了它,您只需说strategy

两种方式各有利弊。一个更冗长,但是将类型标识符保留在标签命名空间中,在那里它们不会与普通标识符冲突(想想 struct statstat 函数:这些不两者都不冲突),并且您会立即看到它是一种类型。另一个更短,但将类型标识符带入了普通命名空间。

关于c - 如何在C中定义枚举类型(enum)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1102542/

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