Q43.
將C 語言程式中的Port 以P1 取代,是在哪一個編譯過程?
數位電子 · 乙級 · 程式語言 · Q43
難易度分析
2 / 5
此題屬於基礎概念辨析題,考驗對 C 語言編譯生命週期的掌握程度。難點在於區分程式碼在進入正式編譯與組譯之前,由前置指令進行文字替換的特定程序階段。
正確答案:④Preprocessing
④ Preprocessing:Preprocessing(前置處理)負責處理所有以 `#` 開頭的前置指令,包含 `#define` 巨集定義。將 `Port` 以 `P1` 取代正是透過 `#define Port P1` 在前置處理階段完成文字替換。
錯誤選項解析
- ① Assembling:Assembling(組譯)是將組合語言轉換為機器碼的過程,不處理 C 語言的巨集替換。巨集替換發生在更早的階段。
- ② Compiling:Compiling(編譯)是將 C 原始碼轉換為組合語言的過程,此時巨集已被替換完成。編譯器本身不處理 `#define` 等前置指令。
- ③ Linking:Linking(連結)是將多個目標檔與函式庫結合成可執行檔的過程,與符號替換無關。此階段已無原始碼層級的處理。
Learning Tip
"C 語言編譯流程依序為:Preprocessing → Compiling → Assembling → Linking。常考陷阱是混淆 `#define` 巨集替換(前置處理)與變數賦值(編譯/執行階段)。切記:凡是以 `#` 開頭的指令(`#include`、`#define`、`#ifdef` 等)均由前置處理器處理,不產生任何機器碼。"
學員答題分佈
①Assembling0%
②Compiling0%
③Linking0%
④Preprocessing0%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!