Перечисление функций C / C ++ (анализ кода в Unix)
Поддерживаем ли мы незнакомый код или проверяем детали реализации модуля Apache, это может помочь, если мы сможем быстро пройтись по коду и составить обзор того, на что мы смотрим. Grep удовлетворяет большинство моих ежедневных потребностей, но в некоторых случаях это просто не годится.
Вот типичный пример того, как это может помочь. Чтобы найти определение функции PHP, в которой я заинтересован, я могу ввести это в командной строке:
grep -r "function myfunc" .
Это может быть очень быстро адаптировано к C или C ++, если мы знаем тип возвращаемого значения, но все становится более сложным, если, скажем, я хочу перечислить все методы, которые предоставляет мой класс:
grep "function " ./src/mine.class.php
Поскольку в C ++ нет ни одного ключевого слова, обозначающего функцию или метод, и поскольку в целом это более сложный синтаксис, я думаю, что мне нужен какой-то инструмент статического анализа кода, умное использование препроцессора C или слепое доверие, когда кодировщик следует строгим правилам кода (количество пробелов, положение фигурных скобок и т. д.), чтобы получить результаты такого рода.
Чтобы вы посоветовали?