번역 유닛(프로그래밍)

Translation unit (programming)

C 및 C++ 프로그래밍 언어 용어에서 번역 유닛(또는 컴파일 유닛)은 오브젝트 파일이 [1]생성되는 C 또는 C++ 컴파일러에 대한 최종 입력입니다.변환 유닛은 C 프리프로세서에 의해 처리된 후 대략 소스 파일로 구성됩니다.즉, 명령어에 나열된 헤더파일은 문자 그대로 포함되며 코드 섹션은 그 안에 포함됩니다.#ifndef포함시킬 수 있고 매크로가 확장되었습니다.

맥락

C 프로그램은 소스 파일(또는 전처리 파일)이라고 불리는 단위로 구성됩니다.소스 파일에는 소스 코드 외에 C 프리프로세서의 디렉티브가 포함됩니다.변환 유닛은 C 프리프로세서의 출력입니다.전처리 후의 소스 파일입니다.

전처리는 특히 소스 파일을 확장하여 모든 파일을 재귀적으로 치환하는 것으로 구성됩니다.#include디렉티브에 선언된 리터럴파일(통상은 헤더파일, 그 외의 소스파일)을 포함한 디렉티브.이 순서의 결과는 전처리 변환 유닛입니다.추가 단계에는 의 매크로 확장이 포함됩니다.#define지시 및 조건부 컴파일#ifdef아디다스 이지 부스트 350 V2 벨루가 - 반사 변환 유닛.변환 유닛으로부터 컴파일러는 오브젝트 파일을 생성해, 한층 더 처리해, 실행 가능한 프로그램을 형성하기 위해서(가능성이 있는 다른 오브젝트 파일은 다른 오브젝트 파일과 링크 할 수 있습니다.

프리프로세서는 원칙적으로 언어에 의존하지 않고 어휘 분석 수준에서 동작하는 사전 프로세서입니다.즉, 해석은 실행되지 않기 때문에 C 구문에 고유한 처리는 할 수 없습니다.컴파일러에 대한 입력은 변환 유닛이기 때문에 컴파일이 시작되기 전에 모두 처리된 프리프로세서 디렉티브는 표시되지 않습니다.주어진 변환 유닛은 기본적으로 파일에 기반하지만, 컴파일러에 공급되는 실제 소스 코드는 특히 헤더의 재귀적인 포함에 의해 프로그래머가 보는 소스 파일과 크게 다르게 보일 수 있습니다.

범위

변환 유닛은 범위정의하고 대략 파일 범위를 모듈 범위와 동일하게 기능합니다.C 용어에서는 이를 내부 링크라고 부릅니다.이것은 C의 2가지 링크 형식 중 하나입니다.함수 블록 외부에 선언된 이름(함수 및 변수)은 특정 변환 유닛 내에서만 볼 수 있습니다.이 경우 내부 링크가 있다고 할 수 있습니다.링커에는 표시되지 않습니다.또, 다른 오브젝트 파일에는 표시되지 않습니다.이 경우 외부 링크가 있다고 할 수 있으며, 링커에는 표시됩니다.

C에는 모듈의 개념이 없습니다.단, 개별 객체 파일(및 객체 파일 생성에 사용되는 변환 유닛)은 개별 모듈과 동일하게 기능하며 소스 파일에 다른 소스 파일이 포함되지 않은 경우 내부 링크(변환 유닛 범위)는 "모든 헤더 파일을 포함하는 파일 범위"로 간주될 수 있습니다.

코드 구성

프로젝트 코드의 대부분은 일반적으로 다음 파일이 포함된 파일에 저장됩니다..c서픽스(또는.cpp,.cxx또는.ccC++의 경우, 그 중.cpp가장 관례적으로 사용됩니다.)포함하도록 의도된 파일에는 일반적으로.h서픽스(.hpp또는.hhC++에도 사용됩니다만,.h는 C++의 경우에도 가장 일반적이며, 일반적으로 헤더가 여러 소스 파일에 포함되어 있을 때 이름 경합을 피하기 위해 함수 또는 변수 정의를 포함하지 않습니다.헤더 파일은 다른 헤더 파일에 포함될 수 있습니다.그것은 모두에게 표준적인 관행이다..c하나 이상의 파일을 포함하도록 프로젝트의 파일.h파일.

「 」를 참조해 주세요.

레퍼런스