Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

вопрос про константы [D7, XP]


ououoy ©   (2007-07-14 15:47:00) 

если я пишу

const
 t = SizeOf(Integer);

а потом в коде много раз использую значение t.

Каковы действия компилятора: он прежде чем превратить в приложение вычисляет значение t и потом подставляет это значение во все указанные места? Или всё же это значение константы реализуется на уровне кода во время выполнения?


Германн   (2007-07-15 02:31:00) [1]


> Anatoly Podgoretsky ©   (14.07.07 16:57) [6]
>
> > Zagaevskiy  (14.07.2007 16:41:03)  [3]
>
> Хватит и того, что сам автор не поймет этого в будущем
>

О как мне это знакомо!
:)
Но не могу же я писАть комментарии к каждой строчке текста программы! :(


Anatoly Podgoretsky   (2007-07-14 17:23:00) [2]

> Kolan  (14.07.2007 17:01:07)  [7]

Вот самого себя и надо особо любить


Zagaevskiy   (2007-07-14 17:05:00) [3]

можно так тогда
const
 IntSize = SizeOf(Integer);
тогда всё понятно


Kolan   (2007-07-14 17:01:00) [4]

> Хватит и того, что сам автор не поймет этого в будущем

В том то и дело, что тот «другой» программист — это в 90% случаев ты и есть :)


Anatoly Podgoretsky   (2007-07-14 16:57:00) [5]

> Zagaevskiy  (14.07.2007 16:41:03)  [3]

Хватит и того, что сам автор не поймет этого в будущем


Anatoly Podgoretsky   (2007-07-14 16:56:00) [6]

> ououoy  (14.07.2007 15:47:00)  [0]

Он просто заменит везде t на выражение.
Но как тебе советуют ниже, так делать не стоит, запутываешь код и уж ни в каком случае не делать
t=4 вот это диверсия.


Kolan   (2007-07-14 16:55:00) [7]

> Ты будешь его код смотреть?

Если ты пишешь код из расчёта что смотреть будешь ты — то можешь его сразу выбросить.

Код надо писать не для себя, а для того «другого» программиста, который будет его читать. Даже если на самом деле твой код никто никогда не увидит.

© — вольный перевод — Мартин Файлер


Zagaevskiy   (2007-07-14 16:41:00) [8]


> Константу он вычислит 1 раз. Тебе типа лень SizeOf(Integer);
>  — и ты решил сделать констаноту? Не делай так. Везде пиши
> SizeOf(Integer);, так как увидев эту строчку в коде её поймут
> все, а увидев твоё t не поймёт никто…

Ты будешь его код смотреть?


Kolan   (2007-07-14 16:38:00) [9]

Константу он вычислит 1 раз. Тебе типа лень SizeOf(Integer);— и ты решил сделать констаноту? Не делай так. Везде пиши SizeOf(Integer);, так как увидев эту строчку в коде её поймут все, а увидев твоё tне поймёт никто…


Zagaevskiy   (2007-07-14 15:49:00) [10]

Напиши т=4 и не парь мозги


Наверх

Титульная страница Поиск, карта сайта Написать письмо