Форум: "Начинающим";
Текущий архив: 2012.03.18;
Скачать: [xml.tar.bz2];
Внизconst в переменных Найти похожие ветки
← →
Gu (2011-12-03 16:34) [0]объясните, зачем в некоторых функциях и процедурах перед переменными добавляют const?
например
function IsAccel ( Key: Word; const S: string ): Boolean;
ведь S тут не var и изменятся и так не может.
← →
sniknik © (2011-12-03 16:46) [1]передача по ссылке, как и var, но с контролем (самоконтролем), чтобы не менялось.
быстрее ссылку передать, чем копию, строки например (ну вот к примеру она гигобайтная...)
← →
sniknik © (2011-12-03 16:48) [2]кстати для строк, вроде оптимизатор сам добавит, если изменений в теле нет... но в общем, лучше писать правильно, а не на оптимизатор надеяться.
← →
Anatoly Podgoretsky © (2011-12-03 17:10) [3]> Gu (03.12.2011 16:34:00) [0]
Ошибаешься, легко изменяется.
← →
Rouse_ © (2011-12-03 17:20) [4]
> ведь S тут не var и изменятся и так не может.
реф на строку в случае const просто не будет добавляться.
← →
Юрий_ (2011-12-03 17:26) [5]
> реф на строку в случае const просто не будет добавляться.
Такая же фигня происходит и с интерфейсами. В результате можно поиметь мемлик - если в качестве интерфейсного параметра подставить непосредственно вызов конструктора объекта, который его реализует, и который должен бы был сам разрушиться, исходя из своей реализации.
Следует быть внимательным.
← →
RWolf © (2011-12-04 15:48) [6]
> объясните, зачем в некоторых функциях и процедурах перед
> переменными добавляют const?
попробуй то и другое и посмотри, какой код сгенерируется.
вкратце: с const оптимальнее.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2012.03.18;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.002 c