[英]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.