Архив за 16 апреля 2008

Apr16

Const в функциях

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

Если не применять ключевое слово const, компилятор будет считать, что строка, возможно, будет меняться в функции, и добавляет скрытыю локальную переменную для хранения строки, т.е. получается примерно следующее:

function FuncName(AStr: string): Integer;

var

lOldStr: string;

begin

lOldStr := AStr;

try

// Тут код функции

finally

AStr := lOldStr;

end;

end;

Я для себя провел небольшой тест и получилось, что при использовании const функция работает на 3-5% быстрее.

П.С. Иногда в процессе самого программирования мы психологически утомляемся. Хорошенько снять напряжение можно просмотрев смешную комедию онлайн в высоком качестве!