Какова цель файла stdafx.h
и что подразумевается под предварительно скомпилированными заголовками?
Цель stdafx.h
Ответ 1
stdafx.h
- это файл, созданный Мастера Microsoft Visual Studio IDE, который описывает как стандартную систему и конкретные файлы проекта которые часто используются, но вряд ли когда-либо измените. Совместимые компиляторы (например, Visual С++ 6.0 и новее) предварительно скомпилировать этот файл, чтобы уменьшить общее время компиляции.Visual С++ будет не компилировать ничего перед
#include "stdafx.h"
в исходном файле, если параметр компиляции/Yu'stdafx.h'
не проверяется (по по умолчанию); он принимает весь код в источник до и включая эту строку уже скомпилирован.
Ответ 2
Чтобы расширить другие отличные ответы:
stdafx.h
- это файл, который включает в себя все широко используемые заголовки для одного проекта. Например, это относится ко всем определениям Windows. Поскольку этот файл включает в себя столько материала, компилятор становится немного медленным при его обработке. Предварительно скомпилировав его, компилятор может пропустить большую часть обработки и повторно использовать его снова и снова; пока ни один из файлов, включенных в него, не изменится, прекомпилированный результат также не нуждается в изменении.
Имя stdafx.h
- это просто соглашение. Вы можете легко переименовать его в другое, если вы изменили все источники, чтобы вместо этого добавить новый файл.
Чтобы создать фактический предварительно скомпилированный файл заголовка, вам нужен один исходный файл в проекте с специальными флагами компиляции для создания предварительно скомпилированного вывода. По соглашению этот файл называется stdafx.cpp
, и если вы проверите настройки этого исходного файла, вы увидите, как он отличается.
Ответ 3
Он обычно используется для имени предварительно скомпилированных заголовков. Хотя использование этого точного имени не требуется, просто по умолчанию. Я расскажу больше о предварительно скомпилированных заголовках на VС++ и g++ здесь.
Вы используете прекомпилированные заголовки для более быстрой компиляции.
Идея состоит в том, что вы помещаете любой заголовочный файл, который не изменится и который вы используете в нескольких исходных файлах внутри вашего предварительно скомпилированного заголовка. Тогда компилятору не потребуется перерабатывать эти заголовки для каждого блока компиляции.
Ответ 4
Это предварительно скомпилированный заголовок, чтобы сократить время компиляции.