共用方式為


/E (前置處理至 stdout)

前置處理 C 和 C++來源檔案,並將前置處理過的檔案複製到標準輸出裝置。

語法

/E

備註

在此程式中,會執行所有預處理器指示詞、執行巨集擴充,以及移除批注。 若要保留前置處理輸出中的批注,請使用 /C (在前置處理期間保留批注) 編譯程序選項。

/E 會將指示詞新增 #line 至每個包含檔案的開頭和結尾,以及預處理器指示詞移除的行周圍,以進行條件式編譯。 這些指示詞會重新編號前置處理過的檔案行。 因此,後續處理階段所產生的錯誤是指原始原始程式檔的行號,而不是前置處理檔案中的行號。

/E 選項會隱藏編譯。 您必須重新提交前置處理過的檔案以進行編譯。 /E 也會隱藏 /FA/Fa/Fm 選項的輸出檔案。 如需詳細資訊,請參閱 /FA、/Fa(清單檔案)/Fm(名稱 Mapfile)。

若要隱藏 #line 指示詞,請改用 /EP (Preprocess to stdout Without #line Directives) 選項。

若要將前置處理的輸出傳送至檔案,而非 傳送至 stdout,請改用 /P (前置處理至檔案) 選項。

若要隱藏 #line 指示詞並將前置處理的輸出傳送至檔案,請 同時使用 /P/EP

您無法搭配 /E 選項使用先行編譯標頭。

請注意,在前置處理至個別檔案時,令牌之後不會發出空格。 這可能會導致非法程式或有意外的副作用。 下列程式已成功編譯:

#define m(x) x
m(int)main( )
{
   return 0;
}

不過,如果您使用:

cl -E test.cpp > test2.cpp

int main中的 test2.cpp 不正確。intmain

在 Visual Studio 開發環境中設定這個編譯器選項

  1. 開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性

  2. 選取 [組態屬性]>[C/C++]>[命令列] 屬性頁。

  3. 在 [ 其他選項 ] 方塊中輸入編譯程序選項。

若要以程式方式設定這個編譯器選項

範例

下列命令行會預先處理 ADD.C、保留批註、新增 #line 指示詞,並在標準輸出裝置上顯示結果:

CL /E /C ADD.C

另請參閱

MSVC 編譯器選項
MSVC 編譯器命令列語法