![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
sheka |
![]()
Сообщение
#1
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
const [Error] Unit1.pas(103): Left side cannot be assigned to ыыы... Чего то я вааще в шоке ![]() |
![]() ![]() |
Client |
![]()
Сообщение
#2
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
constТочно так же... Константу меняешь ![]() |
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Это, а {$J+} не пробовали? Или Assignable typed constants в настройках?
|
sheka |
![]()
Сообщение
#4
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Оно!
А че эт так? В каких целях эта директива не была включена "автоматически"? Сообщение отредактировано: sheka - 18.11.2010 22:06 |
Unconnected |
![]()
Сообщение
#5
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Может, от того, что константы как бы синонимы слова "постоянный"..)
Вообще, никогда не понимал, почему бы не сделать то же самое, только в секции var ) -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Цитата В каких целях эта директива не была включена "автоматически"? Эта директива вообще существует только в целях совместимости со старыми версиями Паскаля/Дельфи:Цитата In early versions of Delphi and Object Pascal, typed constants were always writeable, corresponding to the {$J+} state. Old source code that uses writeable typed constants must be compiled in the {$J+} state, but for new applications it is recommended that you use initialized variables and compile your code in the {$J-} state. ( отсюда: Writeable typed constants (Delphi) ) |
Гость |
![]()
Сообщение
#7
|
Гость ![]() |
> Вообще, никогда не понимал, почему бы не сделать то же самое, только в секции var )
1. Чтобы не инициализировать. 2. Чтобы локальная переменная, что внутри функции, инициализировалась только при старте программы и сохраняла значение между вызовами функции. |
sheka |
![]()
Сообщение
#8
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Т.е. типизированные константы лучше не использовать..
А как тогда задавать начальные значения? В основной пограмме после бегина? ![]() ЗЫ: все равно не могу понять что плохого это может представлять для программы. |
Unconnected |
![]()
Сообщение
#9
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
var x:integer=10; , или я что-то не понял?)
Сообщение отредактировано: Unconnected - 18.11.2010 23:59 -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
sheka |
![]()
Сообщение
#10
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Прикол.. ФП тоже разрешает такое делать..Еще на ТП надо попробовать)
|
volvo |
![]()
Сообщение
#11
|
Гость ![]() |
Можешь не пробовать. Это расширение Object Pascal-я. В Турбо такого не было.
Хочешь ложку дегтя к переменным со стартовым значением? ![]() procedure p; , как думаешь, что получится? |
sheka |
![]()
Сообщение
#12
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Мне кажется, что компилятор скажет обо мне то, что он давно уже думал
![]() Типа что в подпрограмме в описании переменных нельзя инициализировать локальную переменную, т.к. нужно сразу выделять память, хотя... Хотя почему бы это не сделать потом?.. Ну это догадки ![]() Добавлено через 4 мин. Точно! Дык я угадал? (хотя, вроде, я где-то это только что прочитал..не помню). И что делать? Константы, хоть и не строго, но запретили. Инициализировать переменную нельзя.. Добавлено через 2 мин. А-а-а! Вроде дошло! Ведь до того, как дойдет время до выполнения процедуры и инициализации переменной, значение 0 надо УЖЕ где-то хранить, да? |
volvo |
![]()
Сообщение
#13
|
Гость ![]() |
Цитата И что делать? Глобальные переменные инициализировать при описании, локальные - в теле вложенного блока. И не в коем случае не пытаться заменить слово Var на Const только для того, чтобы программа откомпилировалась. Не забывай, типизированная константа сохраняет значение при повторном входе в функцию (за счет того, что хранится не в стеке, а в сегменте данных), переменная - нет.Цитата Хотя почему бы это не сделать потом?.. Не поверишь ![]() А между тем в более продуманных языках все нормально: procedure p is |
TarasBer |
![]()
Сообщение
#14
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
> А как тогда задавать начальные значения?
В дельфе меняй типизированные константы и не парься. Они только называются константами, слова другого не подобрали. -------------------- |
Archon |
![]()
Сообщение
#15
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 618 Пол: Мужской Репутация: ![]() ![]() ![]() |
Не знал, что в Делфи по-умолчанию нельзя менять типизированные константы. А как тогда статические переменные делать в процедурах? В глобальную область выводить что-ли?
-------------------- Close the World...txeN eht nepO
|
TarasBer |
![]()
Сообщение
#16
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Меня другое в дельфе напрягает
-------------------- |
volvo |
![]()
Сообщение
#17
|
Гость ![]() |
Цитата А как тогда статические переменные делать в процедурах? Делай не в процедурах, а в методах класса. А "статические переменные" теперь - это переменные с классовой областью видимости, которые инициализируются в конструкторе. Ибо Object Pascal, и не фиг (по мнению разработчиков) сидеть на процедурном подходе.А между тем Extended Pascal вполне умеет: program tst; , что выдает: Vlady@V877$ gpc tst.pp |
![]() ![]() |
![]() |
Текстовая версия | 18.06.2025 8:29 |