![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Lexicss |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 16.8.2006 Где: Беларусь, Минск Репутация: нет Всего: 1 |
Для простоты изъяснения вопроса приведу простейший пример:
В этом коде компилятор мне ошибку не выкидывает и програма тоже выдаёт ожидаемый результат. Но ведь у меня указатель pMyRec не разыменован. Если я разыменовываю(pMyRec^.Name ...) - тоже всё нормально. Никаких ошибок. Так как всё же правильно писать? Можно и разыменовывать и не разыменовывать как вздумается? Или всё же опасно так писать? --------------------
Бери от жизни всё. |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
так правильно , а так имхо делает по аналогии с классами, PS подождем что гуру скажут -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Lexicss, Это упрощеный синтаксис, послабление для програмиста позволяющее не писать значек "^", удобно его так использовать, но не надо забывать, что это все же указатель, особенно при передаче его в качестве аргумента в функцию. Мне кажется, что такая более разборчива и естествена, но конечно такое использование может привести к учащению ошибок, потому как забываешь, как ты ее раньше объявил, как запись или как указатель на запись.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Lexicss |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 16.8.2006 Где: Беларусь, Минск Репутация: нет Всего: 1 |
Я вообще раньше даже внимание на такое не обращал. Всегда делал без разыменования. Но когда вчера более опытные программисты на Делфи у меня в коде такое увидели, то очень удивились что как ещё тока компилятор такое пропускает. И ещё вчера услышал, что если обращаться к указателю без разыменования, то есть вероятность получить неверный результат. Это правда?
--------------------
Бери от жизни всё. |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Это вряд ли. Мое мнение - надо всегда явно проводить операцию разыменовывания. Это позволит всегда видеть, что задумано в коде и позволит избавиться от многих ошибок и неясностей. -------------------- |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
|
|||
|
||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
Умная машина А вообще, при переносе на более ранние версии компиляторов (напр. Delphi 3), этот код будет выдавать ошибку. Поэтому, моё мнение, всё надо делать по правилам, так как потом можно и забыть про такое. -------------------- Ll 2 |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
3-я дельфя глотает такое нормально.
Фишка иногда полезная - позволяет скрыть подробности реализации (как в KOL). Для новичка конечно лучше делать с явным разыменовыванием, чтоб не путаться. Для тех, кто и так не путается, бывает весьма удобно использование без явного разыменовывания. Я, например регулярно юзаю именно так. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |