翻譯階段
在 §5.1.1.2 翻譯階段中列出的 C 2011 標準中,原始碼到程式映像(例如,可執行檔案)的轉換被列為以 8 個有序步驟發生。
- 原始檔輸入對映到源字符集(如果需要)。在此步驟中替換 Trigraph。
- 延續線(以
\
結尾的線)與下一行拼接。 - 原始碼被解析為空格和預處理標記。
- 應用前處理器,它執行指令,擴充套件巨集並應用編譯指示。由
#include
引入的每個原始檔經歷翻譯階段 1 到 4(如果需要,遞迴地)。然後刪除所有與前處理器相關的指令。 - 字元常量和字串文字中的源字符集值對映到執行字符集。
- 彼此相鄰的字串文字是連線在一起的。
- 原始碼被解析為令牌,其包括翻譯單元。
- 解析外部參考,並形成程式影象。
C 編譯器的實現可以將幾個步驟組合在一起,但是得到的影象仍然必須表現得好像上面的步驟是按照上面列出的順序單獨發生的。