Обнаружение неиспользуемой функции и кода в C - PullRequest
2 голосов
/ 13 сентября 2011

Я пишу программу на C. Есть ли способ (опции gcc) идентифицировать неиспользуемый код и функции во время компиляции.

Ответы [ 3 ]

4 голосов
/ 13 сентября 2011

Если вы используете -Wunused-function, вы получите предупреждения о неиспользуемых функциях.(Обратите внимание, что это также включается при использовании -Wall).

Подробнее см. http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html.

3 голосов
/ 13 сентября 2011

gcc -Wall предупредит вас о неиспользованных static функциях и некоторых других типах недоступного кода.Однако он не будет предупреждать о неиспользуемых функциях с внешней связью, поскольку это сделает невозможным создание библиотеки.

1 голос
/ 13 сентября 2011

Нет, нет способа сделать это во время компиляции. Все, что делает компилятор, - это создает объектный код - он не знает о внешнем коде, который может вызывать или не вызывать функции, которые вы пишете. Вы когда-нибудь писали программу, которая вызывает main? Это компоновщик, который определяет, используется ли функция (в частности, символ) в приложении. И я думаю, что GCC удалит неиспользуемые символы по умолчанию.

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