Can you summarize the following document?
        
  C語言標準規定,預處理是指前4個編譯階段(phases of translation)。

  用於包含另一個檔案:

  if-else指令包括codice_1, codice_2, codice_3, codice_4, codice_5 and codice_6.

  有兩種巨集:  巨集定義可以用codice_7取消:

  codice_8 與 codice_9, 擴充套件為當前檔案與行號。例如: C或C++語言標準定義了巨集: codice_10, codice_11, codice_12,codice_13,codice_14,codice_15等。

  codice_16運算子(Stringification Operator)把隨後的token轉化為C語言的字串。 即使#運算子後面的是另一個巨集名,這個巨集名將不會被巨集展開,而是按照字面值被當作一個字串。因此,如果需要#運算子後面的巨集名做巨集展開,需要使用兩層巨集的巢狀使用,其中外層的巨集展開時也一併把#運算子後面的巨集名做巨集展開。例如:

  codice_17運算子(Token Pasting Operator)連線兩個token為一個token. codice_17運算子左側或右側如果是另一個巨集名,這個巨集名將不會被巨集展開,而是按照字面值被當作一個token。因此,如果需要##運算子左右的巨集名做巨集展開,需要使用兩層巨集的巢狀使用,其中外層的巨集展開時也一併把##運算子左右的巨集名做巨集展開。

  codice_19指令提供了編譯器特定的預處理功能。
C前處理器是C語言、C++語言的前處理器。用於在編譯器處理程式之前預掃描原始碼,完成標頭檔案的包含, 巨集擴充套件, 條件編譯, 行控制(line control)等操作。