簡體   English   中英

如何在C中使用枚舉類型結構?

[英]How do I use enumerate type structs in C?

我試圖將諾基亞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;就足夠了typedef enum { ... } lcd_display_mode_t;

他們打算讓您使用如下代碼:

lcd_display_mode_t mode;
...
mode = lcd_display_all_off;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM