Стоит ли беспокоиться о неиспользованных переменных? - PullRequest
12 голосов
/ 22 мая 2011

Я работаю в большой кодовой базе на C ++, в общей сложности около 8 миллионов строк кода.В моем приложении я видел тысячи неиспользованных переменных, о которых g ++ сообщил, но моя команда проигнорировала их.Я хочу проявить инициативу для очистки этих переменных, но мне нужна некоторая информация, прежде чем приступать к решению этой проблемы.

Будут ли какие-либо проблемы или недостатки наличия тысяч неиспользуемых переменных?

Компилятор по умолчанию обрабатываетэто игнорируемое предупреждение, но я считаю, что мы должны рассматривать предупреждения как ошибки.Есть ли какая-нибудь катастрофа, которая может произойти, если мы проигнорируем это предупреждение?

Должны ли мы приложить усилия, чтобы исправить эту проблему, или это просто напрасная трата усилий?

Ответы [ 3 ]

18 голосов
/ 22 мая 2011

Предполагая, что ваши переменные являются типами POD, такими как int, float и т. Д., Они вряд ли повлияют на производительность.Но они имеют огромное влияние на качество кода.Я предлагаю, когда вы обновляете свой код для добавления новых функций, вы удаляете неиспользуемые переменные по мере продвижения.Вы ДОЛЖНЫ использовать программное обеспечение для контроля версий, чтобы сделать это безопасно.

Это не редкая проблема.Как консультант я однажды просмотрел большую кодовую базу FORTRAN, которая содержала сотни неиспользуемых переменных.Когда я спросил команду, которая написала это, почему они были там, они ответили: «Ну, они могут понадобиться нам в будущем ...»

3 голосов
/ 22 мая 2011

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

Рекомендуется не объявлять переменные, а не использовать их, потому что они могут занимать пространство и,что еще более важно, они загромождают ваш код, делая его менее читабельным.

Если у вас есть, скажем, 1000 неиспользуемых целочисленных значений, а целое число на вашей платформе имеет длину 32 бита, то вы, в общем, будете использовать4 КБ дополнительного стекового пространства с отключенной оптимизацией.

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

0 голосов
/ 22 мая 2011

Неиспользуемые переменные по-прежнему размещаются в памяти.Удаление их освободит память.

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