번역의 단계
C 및 C++ 프로그램 각각의 텍스트는 프로그램의 일부를 포함 하나 이상의 소스 파일에 구성 됩니다.해당 포함 파일을 소스 파일 (를 사용 하 여 포함 된 파일의 #include 전처리기 지시문) 같은 조건부 컴파일 지시문에 의해 제거 하는 코드 섹션을 포함 하지 않는 있지만 #if, "번역 단위" 라고
소스 파일을 서로 다른 시간에 번역 수 있습니다-실제로 오래 된 파일만 번역 하는 것이 일반적입니다.번역 된 번역 단위가 별도 개체 파일 또는 개체 코드 라이브러리를 처리할 수 있습니다.이러한 별도 번역 된 번역 단위 실행 가능한 프로그램 또는 동적 연결 라이브러리 (DLL)를 형성 하 고 연결 됩니다.링커 입력 파일로 사용 되는 파일에 대 한 자세한 내용은 참조 하십시오. LINK 입력 파일.
변환 단위를 사용 하 여 통신할 수 있습니다.
외부 링크를 사용 하는 함수를 호출 합니다.
외부 링크를 사용 하는 클래스 멤버 함수를 호출 합니다.
외부 링크를 사용 하는 개체를 직접 수정 합니다.
파일을 직접 수정 합니다.
프로세스 간 통신 (예: Microsoft Windows 기반 응용 프로그램 에서만).
다음 목록에서 컴파일러 파일을 변환 하는 단계를 설명 합니다.
문자 매핑
원본 파일에서 원본 내부 표현으로 매핑됩니다.삼중 시퀀스가이 단계에서 단일 문자 내부 표현으로 변환 됩니다.줄 나오게
모든 줄 끝에 백슬래시 (\) 바로 뒤에 여는 줄 바꿈 문자 가입 논리 줄 실제 줄에서을 형성 하는 소스 파일에서 다음 줄을.비어 있는 경우를 제외 하 고, 소스 파일에서 백슬래시 앞에 줄 바꿈 문자 끝나야 합니다.토큰화
소스 파일 전처리 토큰 및 공백 문자로 나뉘어집니다.원본 파일에서 주석 하나의 공백 문자를 대체 됩니다.줄 바꿈 문자는 그대로 유지 됩니다.전처리
전처리 지시문이 실행 되 고 소스 파일에 매크로 확장 됩니다.#include 문은 호출 시작 앞의 세 가지 번역 단계를 포함된 하는 텍스트를 번역 합니다.문자 집합 매핑
모든 원본 문자 구성원 집합 및 이스케이프 시퀀스 실행 문자 집합에 해당 하는 항목으로 변환 됩니다.Microsoft C 및 C++의 경우 소스와 실행 문자 집합 ASCII입니다.문자열 연결 연산자
모든 인접 한 문자열 및 와이드 문자열 리터럴을 연결 됩니다.예를 들면 "String " "concatenation" 가 "String concatenation"로 변경됩니다.변환
모든 토큰 구문이 고 의미적으로 분석 됩니다. 이러한 토큰 개체 코드로 변환 됩니다.링크
모든 외부 참조는 실행 가능한 프로그램 또는 동적 연결 라이브러리를 만들려면 확인 됩니다.
컴파일러 경고 또는 오류 구문 오류를 발견 번역 단계 동안 발생 합니다.
링커가 모든 외부 참조를 확인 하 고 하나를 결합 하 여는 실행 가능한 프로그램 또는 DLL을 만듭니다 또는 더 표준 라이브러리와 함께 번역 단위를 개별적으로 처리 합니다.