gpt4 book ai didi

c - 如何在 C 中使用枚举类型结构?

转载 作者:太空宇宙 更新时间:2023-11-04 06:51:42 25 4
gpt4 key购买 nike

我正在尝试将诺基亚 LCD 屏幕设置为关闭所有像素、打开所有像素、打开反转模式和打开正常模式,具体取决于用户按下的按钮。我有完整的代码来设置 LCD 屏幕的模式。这是因为它们显示为枚举类型结构,我对这两个概念都不熟悉。结构是:

typedef enum lcd_display_mode_t {
lcd_display_all_off = 0b000,
lcd_display_all_on = 0b001,
lcd_display_normal = 0b100,
lcd_display_inverse = 0b101,
} lcd_display_mode_t;

我最好的猜测是,作为一个枚举类型,我只需要输入:

if SWITCH X IS ON{
lcd_display_mode_t = 0;
}

这会将显示模式设置为 lcd_display_all_off。在这种情况下,这是对结构的正确使用吗?如果没有,我应该输入什么来设置显示模式?

最佳答案

枚举不是结构。使用枚举来存储二进制数据不是一个好主意。一个人会得到各种奇怪的副作用,例如使用的类型是一个带符号的 int - 这反过来又完全不适合它将用于的那种与硬件相关的编程。此外,二进制文字甚至不是标准的 C。

请注意,typedef 使 lcd_display_mode_t 成为类型,而不是变量。写代码的人有点糊涂,只写typedef enum { ... } lcd_display_mode_t;就够了。

他们打算让你使用这样的代码:

lcd_display_mode_t mode;
...
mode = lcd_display_all_off;

关于c - 如何在 C 中使用枚举类型结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50252165/

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