Цитата:
Сообщение от nixel
выигрыш - в использовании памяти. возможно еще и в скорости обработки, но тут я не уверен.
|
Если говорить о константах числовых - то всё зависит от компилятора. Умный подставит значение везде, где она юзается, и выигрыш будет в одно обращение к памяти и в 4 байта (для integer) в памяти. А не очень умный создаст переменную, и выигрыша не будет вообще (например, так делают многие компиляторы Си; делфовский у меня только один, он подставляет числовые константы в код сразу).
А если говорить про строковые константы - тут несколько иначе. Экономия памяти байта в 4 (на фоне самой строки почти ничто), ускорение на 1 обращение к памяти: строка в делфи на деле есть указатель на строку, и получается, для обращения к обычной строке
Код:
var s: string;
...
Write(s);
будет сначала (1) браться значение из переменной s (являющееся адресом строки), потом (2) значение по этому адресу (сама строка). Для константных строк делфа пропускает первый шаг, т.е. везде сразу используется адрес строки.
Хотя вполне возможно, что другие компиляторы делфи (напр. FreePascal) не особо умны и используют константы как обычные переменные.
Вывод: если можно - лучше константы использовать. Медленнее точно не станет, а может даже чутка быстрее. Но и фанатично все пихать в константы особого смысла нет: прирост производительности не будет даже заметен. Если по коду с точки зрения читаемости логичнее сделать VAR, можно и оставить VAR.