gpt4 book ai didi

c++ - 结构和枚举的区别?

转载 作者:IT老高 更新时间:2023-10-28 23:10:51 26 4
gpt4 key购买 nike

我是 C++ 新手,想了解说和说有什么区别

typedef enum stateUpdateReasonCode
{
a=1,
b=2,
c=3
} StateUpdateReasonCode;

struct StateUpdateReasonCode
{
a=1,
b=2,
c=3
};

它们之间有什么区别?我们为什么要使用一个而不是另一个?

亲切的问候

最佳答案

枚举和结构是完全不同的概念,实现不同的目的。

enum 允许您声明一系列标识符以在您的代码中使用。编译器会为您用数字替换它们。它通常有助于使您的代码更具可读性和可维护性,因为您可以使用描述性名称而不会因字符串比较而降低性能。它还可以使代码不易出错,因为您不必在任何地方都写特定的数字,如果数字发生变化,这可能会出错。

struct 是一种数据结构。在最简单的情况下,它包含零个或多个数据(变量或对象),组合在一起以便它们可以作为一个单元存储、处理或传递。您通常可以拥有它的多个拷贝(或实例)。不过,结构可能要复杂得多。它实际上与类完全一样,只是成员默认是公共(public)的而不是私有(private)的。和类一样,结构体可以有成员函数和模板参数等等。

结构体和枚举之间的一个重要区别是枚举在运行时不存在。当您阅读/编写代码时,这只是为了您的利益。但是,结构(和类)的实例确实可以在运行时存在于内存中。

从编码的角度来看,枚举中的每个标识符都没有自己的类型。结构中的每个成员必须有一个类型。

关于c++ - 结构和枚举的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20680957/

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