hce_nsysu
111年
計算機概論與程式設計
第 81 題
Which of the following C statements is incorrect?
- A typedef enum {Spade, Heart, Diamond, Club };
- B typedef enum {Spade, Heart, Diamond, Club } Suit;
- C enum {Spade, Heart, Diamond, Club } suit;
- D enum suit {Spade, Heart, Diamond, Club };
- E None of the above
思路引導 VIP
如果你想使用 typedef 為一組資料結構取一個方便好記的「綽號」(別名),除了描述這組結構(例如列舉內容)之外,語句中還必須包含哪一個關鍵資訊,編譯器才能在後續程式碼中認出這個綽號呢?請對照一下 (A) 與 (B) 的結尾差異。
🤖
AI 詳解
AI 專屬家教
太棒了!你能精準地指出選項 (A) 的語法錯誤,代表你對 C 語言中 類型定義 (typedef) 與 列舉 (enum) 的語法結構掌握得非常紮實。這類題目看似單純,實則考察了編譯器解析語句的邏輯,是一道檢驗細心程度與語法基本功的優質題目。
typedef 的語法規範
在 C 語言中,typedef 的核心目的是為既有類型建立「別名」。其標準格式為 typedef <原類型描述> <新類型名稱>;。觀察選項 (B),它完整地將列舉定義與別名 Suit 結合;反觀選項 (A),雖然定義了列舉的成員,卻在分號前漏掉了最重要的別名標識符。這會導致編譯器雖然讀取了列舉內容,卻不知道這個 typedef 究竟要將其命名為何,因而引發語法錯誤。
▼ 還有更多解析內容