C/C++: Как выяснить цепочку заголовочных файлов для данного определения?

В 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. Как выяснить ссылки посреди этой цепочки?

12
задан Ashwin Nanjappa 5 July 2010 в 07:18
поделиться

3 ответа

  1. Щелкните правой кнопкой мыши проект, «Свойства проекта»
  2. «Свойства конфигурации» -> «C / C ++» -> «Дополнительно» ".
  3. Установите «Показать включая» на «Да».

Полная иерархия заголовков будет распечатана в окне вывода при компиляции каждого файла.

12
ответ дан 2 December 2019 в 21:02
поделиться

Вы можете использовать инструменты обратного проектирования, такие как Doxygen, Understand Analyst и т. Д. Это поможет вам понять полный поток переменных, вызовов функций.

1
ответ дан 2 December 2019 в 21:02
поделиться

В диалоговом окне свойств в разделе «C / C ++», «Препроцессор» включите «Предварительная обработка в файл». Если вы скомпилируете main.cpp, это сгенерирует main.i.

Затем вы можете заглянуть в main.i и увидеть, какой файл включает в себя другой файл.

1
ответ дан 2 December 2019 в 21:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: