/E(stdout으로 전처리)
C와 C++ 소스 파일을 전처리하고 전처리된 파일을 표준 출력 장치에 복사합니다.
/E
설명
이 처리 과정에서 모든 전처리기 지시문이 실행되고 매크로가 확장되며 주석이 제거됩니다. 전처리된 결과에 주석을 보존하려면 /C(전처리 중에 주석 유지) 옵션을 함께 사용하십시오.
/E 옵션을 사용하면 포함된 파일의 시작과 끝에 그리고 조건적 컴파일을 위해 전처리기 지시문에 의해 제거된 줄에 #line 지시문이 추가됩니다. 이 지시문은 전처리된 파일의 행 번호를 다시 지정합니다. 따라서 프로세스의 뒷 단계에서 발생한 오류는 전처리된 파일의 줄이 아닌 원본 소스 파일의 줄 번호를 참조합니다.
/E 옵션을 사용하면 컴파일되지 않습니다. 컴파일에 필요한 사전 처리된 파일을 다시 전송해야 합니다. 또한 /E를 사용하면 /FA, /Fa 및 /Fm 옵션을 사용해도 출력 파일이 생성되지 않습니다. 자세한 내용은 /FA, /Fa(목록 파일) 및 /Fm(맵 파일 이름 지정)을 참조하십시오.
#line 지시문을 사용하지 않으려면 /EP(#line 지시문 없이 stdout로 전처리) 옵션을 대신 사용합니다.
전처리된 출력을 stdout 대신 파일로 보내려면 /P(파일 전처리) 옵션을 사용합니다.
#line 지시문을 사용하지 않고 전처리된 출력을 파일로 보내려면 /P와 /EP를 함께 사용합니다.
/E 옵션을 사용할 경우에는 미리 컴파일된 헤더를 사용할 수 없습니다.
개별 파일로 전처리를 할 때 토큰 뒤의 공백은 제외됩니다. 이로 인해 잘못된 프로그램이 되거나 의도하지 않은 결과가 생길 수 있습니다. 다음 프로그램은 제대로 컴파일됩니다.
#define m(x) x
m(int)main( )
{
return 0;
}
그러나 다음과 같이 컴파일하면
cl -E test.cpp > test2.cpp
test2.cpp의 int main이 잘못되어 intmain이 됩니다.
Visual Studio 개발 환경에서 이 컴파일러 옵션을 설정하려면
프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 방법: 프로젝트 속성 페이지 열기를 참조하십시오.
C/C++ 폴더를 클릭합니다.
명령줄 속성 페이지를 클릭합니다.
추가 옵션 상자에 컴파일러 옵션을 입력합니다.
프로그래밍 방식으로 이 컴파일러 옵션을 설정하려면
- GeneratePreprocessedFile을 참조하십시오.
예제
다음 명령줄은 ADD.C를 전처리하고 주석을 유지하며, #line 지시문을 추가하고 표준 출력 장치에 결과를 표시합니다.
CL /E /C ADD.C