Подтвердить что ты не робот

Какая разница между терминами "исходный файл" и "единица перевода"?

В чем разница между исходным файлом и единицей перевода?

4b9b3361

Ответ 1

Из стандарта С++:

Исходный файл вместе со всеми заголовками и исходными файлами, включенными в директиву предварительной обработки #include меньше любой исходной строки, пропущенной любой из условных инструкций предварительной обработки включения, называется единицей трансляции.

Ответ 2

"Единица перевода" - это исходный файл, плюс любые заголовки или другие исходные файлы, которые он включает, плюс любые файлы, включенные в ОНИ, и так далее. Исходный файл - это только... один исходный файл.

Если это помогает, подумайте о исходном файле как о "предыдущем" препроцессоре, а единица перевода - "после".

Ответ 3

Единица перевода является базовой единицей компиляции в С++. Он содержит:

  • все содержимое одного исходного файла после запуска препроцессора
  • содержимое любых файлов заголовков, прямо или косвенно связанных с ним
  • минус любые строки, игнорируемые с помощью условных инструкций предварительной обработки

Единая единица перевода скомпилируется в объектный файл, библиотеку или исполняемую программу.

Исходный файл, напротив, является автономным файлом, как и любой другой файл в вашей файловой системе. После компиляции он может быть компонентом единицы перевода, как указано выше.