Страницы

Поиск по вопросам

вторник, 9 октября 2018 г.

Повторное использование переменных

Я завел переменную типа int с осмысленным именем count (счет), потом использовал ее по назначению.
Дальше в коде потребовалась переменная с типом int - правильно ли использовать эту же переменную(count) ведь она уже не нужна, а только занимает память.
Проблема в том, что у нее есть правильное имя которое уже не соответствует в текущей реализации. Что правильней - задействовать ее или завести новую?


Ответ

Испаользование одной переменной для разных целей - это неправильно. Во-первых, вы, я вас уверяю, скорее всего не столкнетесь с такой ситуацией, когда лишние 4 байта (или сколько ваш компилятор будет задействовать для хранения int'a) могут сыграть большую роль. (более того, я могу вам гарантировать, что будет миллион случаев, где вы успешно потратите впустую куда большие объемы памяти и даже не обратите на это внимание) Во-вторых, (и в главных) такая экономия ни к чему хорошему не приведет - переменная должна использоваться только для одной цели, использовать ее в нескольких целях чревато серьезными проблемами. Скорее всего, если вы будете применять эту порочную практику в сколько-нибудь больших проектах, вы однажды просто используете "старое" значение переменной в "новых" целях просто из-за невнимательности, а это может привести к самым непредсказуемым последствиям. Вот пример: предположим, вы пишете программу для какого-нибудь кардиостимулятора. Из желаний сэкономить память вы в одной и той же переменной храните сначала частоту сердцебиения, а потом,в другой части программы, посчитав, что вам эта частота уже не нужна, вы пишете в нее какую-нибудь концентрацию сахара в крови. А потом, забыв, о вышесказанном, снова используете переменную в первоначальном значении. Обнаружив, что частота сердцебиения снизилась с 80 ударов в секунду до, скажем 0.0005, ваш кардиостимулятор предполагает, что человеку очень плохо, и начинает что-то там делать, отчего человеку очень плохо становится уже по-настоящему. В действительности, я понятия не имею, как работают кардиостимуляторы, и, скорее всего, я тут много приврал, но так или иначе, эта ваша практика может привести к чему-то подобному, описанному выше

Комментариев нет:

Отправить комментарий