【问题标题】:Typedef & enum in C format and advtantagesC 格式的 typedef 和 enum 及其优点
【发布时间】:2017-03-30 19:44:36
【问题描述】:

我正在尝试弄清楚如何正确使用 typedef 枚举。我到底能用以下内容做什么,如何从 typedef enum 调用值,我可以将 typedef enum 中的一个值链接到数组中的一个数字吗?谢谢

typedef enum
{
  A1 = 10,
  A2 = 20,
  A7 = 25,
  A9 = 91
} Select;

【问题讨论】:

  • “调用值”是什么意思?或者通过“将这些值之一[...]链接到数组中的数字”
  • A typedef 声明了一个类型的别名。然后,您可以在任何需要类型名称的地方使用定义的别名,即Select 作为类型名称。就他们而言,枚举常量可以用作类型化常量,就好像它们被声明为const int 类型的变量一样。

标签: c


【解决方案1】:

如果您是 C 新手,您必须先了解 typedef 和 enums 的用途,然后才能弄清楚该 enum typedef 的意图(我假设这是来自某些分配?)。查看这篇文章中提供的答案:How do I use typedef and typedef enum in C?

提出您的问题 - “我将如何调用 typedef 枚举中的值,我可以将 typedef 枚举中的一个值链接到数组中的一个数字吗?” - 枚举中的“值”实际上是常量(如宏定义)。它们可以像任何常量一样分配给变量并传递给函数。

你问,你可以用 typedef 枚举做什么?一方面,如果使用得当,它可以提高代码的可读性。当你 typedef 一个枚举时,你正在指定一个新的数据类型。使用这种新类型声明的变量可以预期采用枚举中指定的值。没有什么能阻止这些变量取其他值,但代码变得更具可读性,并且任何阅读代码的人都清楚变量的意图。通常有错误代码的枚举。因此,使用此类 typedef 枚举声明的状态变量可以预期包含枚举中列出的错误代码之一。

如果我冒险猜测,您指定的枚举可能包含数组中感兴趣的索引,或数组中某些索引处的预期值。无论如何,如果您浏览其余代码,您会发现自己!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2012-05-17
    相关资源
    最近更新 更多