![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| lukas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: 3 Всего: 15 |
Ну с var не копируется, а вот с const рекорды может копировать, проверено на практике, замедление будет существенное. -------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
lukas, когда это const-рекорды копируются, если они точно не меняются?
-------------------- Обижено школьников: 8 |
|||
|
||||
| БелАмор |
|
||||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 10.6.2010 Где: Россия Репутация: 5 Всего: 17 |
Насколько я помню, с const отсутсвие копирования не гарантируется, но компилятор старается по возможности исключить его....
Пока вам нужно менять только значения элементов - всё замечательно, но как только потребуется вызвать SetLength, вся эта благодать тут-же закончится... Разница будет следующая: Константа - компилятор выдаст ошибку. По значению - получим два разных массива. По ссылке - всё нормально: изменим оригинальный внешний массив. Тестовый пример:
На выходе имеем:
Это сообщение отредактировал(а) БелАмор - 10.1.2011, 09:27 |
||||||||
|
|||||||||
| Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: 2 Всего: 3 |
Ну var, это тот же аналог что если я передам через указатель
Foo1(Arr); Foo2(@Arr) Foo1 и Foo2 это эквивалент -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
| БелАмор |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 10.6.2010 Где: Россия Репутация: 5 Всего: 17 |
Да, это аналог. Но в случае явного использования указателя появляется два лишних шага: взятие адреса и последующее разуказачивание. Всё это затуманивает смысл. Кроме того, есть вещи, которые делать просто "не принято". В отношении некоторых из них это вполне обосновано. В отношении других - не очень. Но считаться с этим приходится. |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
-------------------- Обижено школьников: 8 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |