Книга: Фундаментальные алгоритмы и структуры данных в Delphi

Использование ключевого слова const

Использование ключевого слова const

Если функции передать строку, которая в процессе выполнения функции не будет изменяться, объявляйте ее как const. В большинстве случаев это исключает скрытое добавление блока try..finally. Если не использовать ключевое слово const, компилятор будет считать, что значение, возможно, будет изменяться, и поэтому вводит скрытую локальную переменную для хранения строки. В начале выполнения функции счетчик ссылок будет увеличен на 1, а в конце - уменьшен на 1. Чтобы гарантировать, что значение счетчика всегда будет уменьшаться, компилятор вставляет скрытый блок try..finally.

В листинге 1.5 приведена функция определения количества гласных в строке.

Листинг 1.5. Подсчет количества гласных в строке

function CountVowels(const S : string): integer;

var

i : integer;

begin

Result := 0;

for i := 1 to length (S) do

if upcase(S[i]) in ['A', 'E', 'I', 'O', 'U'] then

inc(Result);

end;

Если из строки объявления функции убрать ключевое слово const, ее быстродействие снизится приблизительно на 12% - это и есть влияние скрытого блока try..finally.

Оглавление книги


Генерация: 1.675. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз