Q35.
在C 程式中,定義一個struct 如下,若要將Part 定義為part 的別名,下列敘述何者正確?
電腦軟體設計共同科目 · 乙級 · Q35
難易度分析
2 / 5
本題考查對型別別名定義語法的精確掌握,需區分定義順序以及辨析預處理指令與型別定義的差異,並注意程式碼中的符號細節。
正確答案:②typedef struct part Part;
② typedef struct part Part;:typedef 關鍵字用於建立型別別名,語法為 `typedef 原有型別 新別名;`,此處將 `struct part` 定義別名為 `Part`,符合 C 語言規範。
錯誤選項解析
- ① define Part part:#define 是前置處理器指令,用於巨集替換而非型別別名,且語法應為 `#define` 而非 `define`。此寫法無法建立結構型別的別名。
- ③ typedef struct Part part;:此寫法將 `struct Part` 的別名設為 `part`,方向與題目要求相反。題意要求將 `Part` 作為 `part` 的別名,而非反向操作。
- ④ typedef part Part;:`part` 尚未被定義為獨立型別,不能直接作為 typedef 的來源;且句末使用全形分號(;)而非半形分號(;),會造成編譯錯誤。
Learning Tip
"本題核心考點為 typedef 語法順序:`typedef 原始型別 新名稱;`。常考陷阱包含混淆 `#define` 與 `typedef` 的差異(前者為文字替換、後者為型別別名),以及注意分號必須為半形符號。實務上建議統一使用 typedef 處理結構型別別名,以提升程式可讀性與型別安全性。"
學員答題分佈
①define Part part0%
②typedef struct part Part;0%
③typedef struct Part part;0%
④typedef part Part;0%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!