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

Цель stdafx.h

Какова цель файла stdafx.h и что подразумевается под предварительно скомпилированными заголовками?

4b9b3361

Ответ 1

stdafx.h - это файл, созданный Мастера Microsoft Visual Studio IDE, который описывает как стандартную систему и конкретные файлы проекта которые часто используются, но вряд ли когда-либо измените. Совместимые компиляторы (например, Visual С++ 6.0 и новее) предварительно скомпилировать этот файл, чтобы уменьшить общее время компиляции.

Visual С++ будет не компилировать ничего перед   #include "stdafx.h" в исходном файле, если параметр компиляции /Yu'stdafx.h' не проверяется (по по умолчанию); он принимает весь код в источник до и включая эту строку уже скомпилирован.

http://en.wikipedia.org/wiki/Precompiled_header

Ответ 2

Чтобы расширить другие отличные ответы:

stdafx.h - это файл, который включает в себя все широко используемые заголовки для одного проекта. Например, это относится ко всем определениям Windows. Поскольку этот файл включает в себя столько материала, компилятор становится немного медленным при его обработке. Предварительно скомпилировав его, компилятор может пропустить большую часть обработки и повторно использовать его снова и снова; пока ни один из файлов, включенных в него, не изменится, прекомпилированный результат также не нуждается в изменении.

Имя stdafx.h - это просто соглашение. Вы можете легко переименовать его в другое, если вы изменили все источники, чтобы вместо этого добавить новый файл.

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

Ответ 3

Он обычно используется для имени предварительно скомпилированных заголовков. Хотя использование этого точного имени не требуется, просто по умолчанию. Я расскажу больше о предварительно скомпилированных заголовках на VС++ и g++ здесь.

Вы используете прекомпилированные заголовки для более быстрой компиляции.

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