Препроцессированный *.i файл - это результат работы препроцессора языка C или C++. Как правило, именно такое расширение имеют файлы, получившиеся в результате работы препроцессора. Препроцессор выполняет первичные преобразования исходного текста программы, используя при этом только лексический анализ.
Препроцессор выполняет следующие действия:
Препроцессор может использоваться как вспомогательный инструмент при статическом анализе кода. Так, например, в статическом анализаторе PVS-Studio используются сразу три различных препроцессора (MSVC, Clang, C++Builder) в зависимости от типа исходного проекта или файла. Это необходимо потому, что в основе анализатора лежит библиотека разбора кода VivaCore, которая не имеет встроенного препроцессора. Необходимость в предварительном препроцессировании исходного файла обусловлена тем, что для качественного статического анализа кода необходимо, что бы все директивы '#include' и '#define' были раскрыты.
Получить препроцессированный файл в среде MSVC можно, установив значение свойства 'Generate Preprocessed File' из вкладки 'C/C++\Preprocessor', как показано на рисунке 1.
Получить препроцессированый файл, использую компилятор GCC можно, добавив в его вызов параметры '-E -o имя_файла.i'.
0