Q78.
相較標準C 編譯器,有關SDCC(Small Device C Compiler)編譯器的說明,下列何者正確?
數位電子 · 乙級 · 程式語言 · Q78
難易度分析
4 / 5
題目屬於複選題型,考生必須精確辨識多個關於特定嵌入式編譯器限制的敘述。除了需要掌握結構傳遞與回傳值的差異,還須理解 C99 特性在資源受限環境下的支援程度,以及硬體限制對浮點數精度的影響,判斷難度因需同時檢驗多項知識點而提升。
正確答案 (複選):①, ②
- ① 結構(struct)不可以作為函數傳入參數:SDCC 針對嵌入式微控制器設計,為節省記憶體與提升編譯效率,結構(struct)不可作為函數傳入參數,需改用指標傳遞。
- ② 不支援可變長度陣列(variable-length arrays):SDCC 不支援 C99 引入的可變長度陣列(VLA),因其執行時期動態配置記憶體的特性不符合嵌入式系統的資源限制。
錯誤選項解析
- ③ 支援雙精確浮點數:SDCC 預設僅支援單精確浮點數(32-bit float),不支援雙精確浮點數(64-bit double),因嵌入式硬體通常缺乏對應的運算單元。
- ④ 結構(struct)可以作為函數回傳值:SDCC 不允許結構(struct)作為函數回傳值,與選項 1 同理,需透過指標或全域變數間接回傳。
Learning Tip
"SDCC 是專為 8051、Z80 等微控制器設計的 C 編譯器,其語法限制主要源於嵌入式系統的資源侷限性。常考陷阱為將標準 C 的特性直接套用於 SDCC,需特別注意結構傳遞、浮點數精度及 C99 新特性支援度的差異。"
學員答題分佈
①結構(struct)不可以作為函數傳入參數0%
②不支援可變長度陣列(variable-length arrays)0%
③支援雙精確浮點數0%
④結構(struct)可以作為函數回傳值0%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!