Как правило, вы помечаете их один раз #pragma или эквивалентным макросом и перестаете заботиться об этом.
Если вы используете компилятор MS, вы можете поместить сообщение #pragma (IIRC, вместо этого может быть предупреждение #pragma или ошибка #pragma) с именем файла заголовка в самом верху каждого файла заголовка и выходные данные вашей сборки покажут список всех включенных в каждый скомпилированный файл.
Это лучше всего подойдет для ваших заголовочных файлов, так как системные не будут включены.
Если вы хотите увидеть все включенные заголовки, отредактируйте параметры компиляции, добавив / P (предварительная обработка в файл) , который не будет компилировать ваш код, но вместо этого перенаправит препроцессор в файл , затем вы можете просмотреть его, чтобы увидеть операторы #include. Помните, что эти файлы будут большими.