당시 Meyers가 작성한 "Effective C ++"을 읽고 "번역 단위"라는 용어를 사용했습니다.
누군가 나에게 설명을 해 줄 수 있습니까?
1) 정확히 무엇입니까
2) C ++로 프로그래밍 할 때 언제 사용해야합니까?
3) C ++에만 관련되거나 다른 프로그래밍 언어와 함께 사용할 수있는 경우
용어를 모른 채 이미 사용했을 수도 있습니다 ....
당시 Meyers가 작성한 "Effective C ++"을 읽고 "번역 단위"라는 용어를 사용했습니다.
누군가 나에게 설명을 해 줄 수 있습니까?
1) 정확히 무엇입니까
2) C ++로 프로그래밍 할 때 언제 사용해야합니까?
3) C ++에만 관련되거나 다른 프로그래밍 언어와 함께 사용할 수있는 경우
용어를 모른 채 이미 사용했을 수도 있습니다 ....
답변:
표준 C ++ ( wayback machine link ) 에 따르면 : 변환 단위는 C ++에서 컴파일의 기본 단위입니다. 단일 소스 파일의 내용과 직접 또는 간접적으로 포함 된 헤더 파일의 내용에서 조건부 전처리 명령문을 사용하여 무시 된 행을 제외한 내용으로 구성됩니다.
단일 변환 단위는 오브젝트 파일, 라이브러리 또는 실행 가능 프로그램으로 컴파일 될 수 있습니다.
번역 단위의 개념은 단일 정의 규칙과 템플릿의 맥락에서 가장 자주 언급됩니다.
번역 단위는, 모든 의도와 목적 파일 (이 .c / cpp를)입니다 후 이 헤더 파일을 모두 포함 끝났어.
http://msdn.microsoft.com/en-us/library/bxss3ska%28VS.80%29.aspx
확실히 대답하기 어려운 질문입니다. C ++ 표준은 다음과 같이 말합니다.
프로그램의 텍스트는이 국제 표준에서 소스 파일이라고하는 단위로 유지됩니다. 전처리 지시문 #include를 통해 모든 헤더 (17.4.1.2) 및 포함 된 소스 파일 (16.2)과 함께 소스 파일을 조건부 포함 (16.1) 전처리 지시문으로 건너 뛴 소스 행을 변환 단위라고합니다. [참고 : C ++ 프로그램을 동시에 번역 할 필요는 없습니다. ]
따라서 대부분의 의도와 목적을 위해 변환 단위는 단일 C ++ 소스 파일과 전 처리기 #include 메커니즘을 통해 포함 된 헤더 또는 기타 파일입니다.
다른 질문과 관련하여 :
2) C ++로 프로그래밍 할 때 언제 사용해야합니까?
당신은 그것을 고려할 수 없습니다-번역 단위는 C ++ 프로그램의 기초입니다.
3) C ++에만 관련되거나 다른 프로그래밍 언어와 함께 사용할 수있는 경우
다른 언어들도 비슷한 개념을 가지고 있지만 그 의미는 미묘하게 다릅니다. 예를 들어 대부분의 다른 언어는 전처리기를 사용하지 않습니다.
이 책은 그것을 충분히 명확하게합니다. Meyers가 "번역 단위"를 지칭 할 때, 그는 소스 코드 파일을 의미합니다.
다른 사람들이 말했듯이 변환 단위는 기본적으로 전처리 후 소스 파일의 내용입니다. 언어 문법에서 가장 높은 작품입니다. C 또는 C ++ 컴파일러를 작성하는 경우에만 걱정하면됩니다.
제 생각에 "번역 단위"는 일반적으로 단일 "사전 처리"소스 파일입니다. 이 MSDN 페이지에서 자세한 내용을 확인할 수 있습니다. http://msdn.microsoft.com/en-us/library/bxss3ska(v=vs.80).aspx