Вы можете объединить эти два метода:
Включите оба .cpp-файла и добавьте их в stdafx.h. Это все равно даст вам оптимизацию PCH.
.cpp-файл по-прежнему должен содержать #include "stdafx.h", поэтому его независимость является дискуссионной. Тем не менее, зависимость является явным состоянием, и удаление включения stdafx.h проще, чем поиск всех отсутствующих включений. Кроме того, стандартные заголовки - как и все заголовки - убедитесь, что они не включены дважды.
Как правило, я согласен с вашим подходом сделать каждый файл "независимым", то есть когда .cpp добавляется в другой проект или включается .h, он заботится о своих зависимостях.
Помните, что PCH - это компромисс, они могут стать огромными. Наличие большого количества неиспользуемого кода в PCH может на самом деле замедлить сборку. Быстрые диски очень помогают, хотя:)
Также имейте в виду, что включение предварительно скомпилированных заголовков в MSVC по крайней мере в некоторых версиях действительно меняет обработку: объявления перед #include "stdafx.h" игнорируются, поэтому это должно быть вашим первым оператором без комментариев. Гадкий подводный камень.