У меня вопрос относительно включаемых файлов.
Предположим, вы используете определение из заголовков windows. Конечно, вы можете знать, какой именно заголовок определяет макрос. Но вопрос в том, можем ли мы получить цепочку include
и узнать, какой путь вызывает включение макроса?
Например, у меня есть следующая структура:
windows.h // a windows header defines a macro
header1.h <- windows.h // a <- b means a includes b
header2.h <- windows.h
header3.h <- windoes.h
header4.h <- header1.h, header2.h
header5.h <- header1.h, header4.h, header3.h
Как и следовало ожидать, реальный пример может быть очень сложным с тонами определений макросов и ifdef
s.
Теперь в нашем example.cpp
мы #include "header4.h"
или #include "header5.h"
или оба вместе, и мы используем макрос в windows.h
в нашем коде. Как узнать, что такое включаемая цепочка?
Например, для этого примера это может быть header4.h - header1.h - windows.h