![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
const в delphi / define в C
ledelphi © (2006-10-15 21:53:00)Господа, вот например в C компиляторах с препроцессором, #define, является неким подобием константы, и препроцессор перед компиляцией заменяет все эти define, на соответствующие константы.
(хотя это вы и сами знаете наверное)
Хоть в delphi и нет подобного C препроцессора, но интересно в delphi константы работают таким же образом?
Ketmar (2006-10-16 18:20:00) [1]>[5] @!!ex(c) 16-Oct-2006, 10:09
>А я наивно полагал, что 2006 это уже поддерживает...
не знаю. я не читал "вацнью". да и пишу на D7. %-)
@!!ex (2006-10-16 10:09:00) [2]
> Anatoly Podgoretsky © (15.10.06 22:01) [2]
> Ketmar © (15.10.06 22:20) [3]
> guav © (15.10.06 22:35) [4]
А я наивно полагал, что 2006 это уже поддерживает...
Неужели я ошибаюсь? :))
guav (2006-10-15 22:35:00) [3]В Delphi различают True constants и Typed constants.
Typed constants соответствуют константам заданным через const в С.
Перечисляемых типов и вещественные True constants подставляются значением.
Для строковых True constants действуют более сложные правила.
Прямого аналога #define в Delphi нет.
Ketmar (2006-10-15 22:20:00) [4]ни разу не так. %-) хотя отличия на первый взгляд и незаметны. нет в дельфи макропроцессора a-la C (IFDEF не считаем %-). и это правильно.
Anatoly Podgoretsky (2006-10-15 22:01:00) [5]Если ты про константы, то примерно одинаков, будет как минимум литеральная подстановка.
А макро процессора действительно нет, поскольку он требует многопроходной компиляции.
@!!ex (2006-10-15 21:55:00) [6]
> Хоть в delphi и нет подобного C препроцессора
Есть.
> но интересно в delphi константы работают таким же образом?
Насколько мне известно, не совсем так.
Просто попробуй описать в константе строку используй ее в куче мест.
В коде будет только одна такая строка.
Вывод:
Дельфи не подставляет константы.
В коде С будет тоже самое, кстати.
Правда там и строк то нет, в паскалевом понимании.