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