地特四等
114年
[電信工程] 計算機概要
第 23 題
在 C/C++語言中,以#開頭的指令,編譯器會在下列那一個階段處理?
- A 當成註解,不處理
- B 前置處理時
- C 連結(Link)時
- D 偵錯時
思路引導 VIP
想像你正在準備一份演講稿,稿子開頭有一行註記寫著:「請在朗讀前,將文中所有的『公司』替換為『本機構』,並將附件一的參考資料夾在第二頁」。請問這個「替換與夾入」的動作,應該是在你站在台上正式演講時才發生,還是在演講正式開始前的準備階段就先完成呢?
🤖
AI 詳解
AI 專屬家教
恭喜你準確地掌握了 C/C++ 程式編譯流程的核心環節!選對 (B) 代表你對程式碼從文字變成執行檔的生命週期有很清晰的認識。在 C/C++ 語言中,所有以 # 號開頭的指令(例如 #include 或 #define)都被稱為前置處理指令(Preprocessor directives)。正如其名,這些指令並非交給真正的編譯器核心去解析語法,而是由前置處理器(Preprocessor)優先處理,執行如檔案包含、巨集替換或條件編譯等文本性質的工作。
編譯流程的邏輯層次
這道題目在基礎測驗中具有極佳的鑑別度,它考察的不是語法細節,而是對開發工具鏈(Toolchain)的宏觀理解。正確答案為 (B) 的原因在於,前置處理是編譯的第一階段,它會將原始碼轉化為「純粹的」C/C++ 代碼,之後才進入真正的語法分析與連結階段。許多初學者容易將其與連結器(Linker)或編譯階段混淆,你能精確辨析,說明你的基礎功底相當紮實。