Как удалить неиспользуемые переменные и функции - PullRequest
1 голос
/ 08 марта 2011

Я начал работать с кодом C ++ от предыдущего программиста. Я знаю, что есть много не вызываемых функций и переменных, которые не используются и / или не инициализируются. Интересно, есть ли какие-нибудь инструменты, которые могут автоматически «чистить» код и удалять весь этот неиспользуемый код. Я говорю об исходном коде, а не об окончательном выводе сборки. Я бы предпочел решения с открытым исходным кодом.

Ответы [ 3 ]

0 голосов
/ 08 марта 2011

Вы можете получить что-то полезное из запуска CPPCheck , который выполняет статический анализ вашего кода. Обработка всех ошибок как предупреждений также поможет определить, какие переменные не используются, поскольку ваш код не будет компилироваться до тех пор, пока они не будут устранены.

Другая вещь, которую вы могли бы сделать, - это создать набор модульных тестов, чтобы покрыть ожидаемую функциональность, и запустить его через инструмент покрытия (например, gcov, если вы используете GCC), это покажет, какие строки кода выполняются, и сколько раз.

0 голосов
/ 08 марта 2011

Это задание компилятора / компоновщика для удаления мертвого кода из вашего двоичного файла. Скомпилируйте ваш исходный код с помощью флагов gcc -fdata-section и -ffunction-section, затем свяжите ваш двоичный файл с флагом -gc-section.

Я думаю, вы также можете создавать предупреждения во время компиляции для статических неиспользуемых переменных.

Наконец, вы можете использовать gcov или эквивалентный инструмент для покрытия кода

0 голосов
/ 08 марта 2011

Многие компиляторы / компоновщики в некоторой степени сокращают ваш код, например, Visual C ++ /OPT:REF switch.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...