При полной компиляции компилятор будет читать каждый файл .cpp по очереди.Для данного файла .cpp он затем будет читать каждый файл, на который ссылается директива #include
, рекурсивно, компилируя код в процессе работы.Когда он компилирует следующий исходный файл, он будет читать файлы, на которые ссылается #include
в этом исходном файле.
Когда вы вносите какие-либо изменения и делаете сборку, то если какой-либо из файлов, на которые ссылается #include
директива из вашего файла .cpp изменилась, затем файл .cpp будет перекомпилирован, как если бы изменился сам файл .cpp.
Ненужные директивы #include
, таким образом, имеют две стоимости: во-первых, компилятор должен прочитать ипри компиляции обрабатывает больше файлов, и, во-вторых, увеличивает вероятность того, что ваш файл .cpp потребуется перекомпилировать, даже если ничего из того, что он на самом деле использует, не изменилось.