В Visual C++ можно найти заголовочный файл, где любое имя (переменная или тип) определяется путем нажатия F12 на нем или выбора Go to Definition. Эта функция очень полезна, но она только показывает заключительное местоположение (заголовочный файл), где имя определяется. Существует ли способ выяснить цепочку заголовочных файлов, которые ведут от моего исходного файла до заключительного заголовочного файла для имени?
Например, рассмотрите этот код:
// main.cpp
#include <stddef.h>
int main()
{
size_t s;
return 0;
}
В Visual C++ 2010, если я ищу определение size_t
в вышеупомянутом main.cpp
, это сажает меня в некотором названном файле sourceannotations.h
. Я знаю, что эта цепочка заголовка начинается stddef.h
(который я включал), и концы в sourceannotations.h
. Как выяснить ссылки посреди этой цепочки?
Полная иерархия заголовков будет распечатана в окне вывода при компиляции каждого файла.
Вы можете использовать инструменты обратного проектирования, такие как Doxygen, Understand Analyst и т. Д. Это поможет вам понять полный поток переменных, вызовов функций.
В диалоговом окне свойств в разделе «C / C ++», «Препроцессор» включите «Предварительная обработка в файл». Если вы скомпилируете main.cpp, это сгенерирует main.i.
Затем вы можете заглянуть в main.i и увидеть, какой файл включает в себя другой файл.