![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что означает такая запись?
Чапаев © (2007-06-09 09:17:00)
var
A: Integer;
...
A := $;
...
Никогда раньше не встречал константу "$". Что она означает?
Однокамушкин (2007-06-09 22:06:00) [1]
>
> Чапаев © (09.06.07 09:45) [6]
> Опа... А Делфи var F: Real ... F := .1; не понимает. Паскаль
> понимал...
Специально проверил, Турбо Паскаль 7-ой не понимает... других версий у меня не сохранилось, но подозреваю, что и они не поняли бы... это фортран такую запись понимал, и ещё некоторые диалекты бейсика...
MBo (2007-06-09 16:46:00) [2]>В таком случае должен пропускать A := ; Десятичный ноль
Угу :)
Видимо, дело в логике работы разборщика строки у компилятора, поскольку библиотечные функцииэтого не позволяют, например StrToInt('$') не проходит.
К примеру, если для этого задействован конечный автомат, логика может быть такой:
После IntVar := входит в состтояние ожидания идентификатора функции, константы, десятичной цифры или $.
После цифры или $ в приемник записывается начальное значение 0, автомат переходит в состояние ожидания пробела, точки с запятой, или цифры (во втором случае - шестнадатиричной).
Получив точку с запятой, автомат завершает разбор оператора.
Германн (2007-06-09 16:18:00) [3]Money, money, money, always sunnyIn the rich man's world.
Anatoly Podgoretsky (2007-06-09 15:35:00) [4]> MBo (09.06.2007 09:21:01) [1]
> шестнадцатиричный ноль, видимо, компилятор пропускает такое
В таком случае должен пропускать A := ; Десятичный ноль
Чапаев (2007-06-09 09:45:00) [5]Опа... А Делфи var F: Real ... F := .1; не понимает. Паскаль понимал...
Чапаев (2007-06-09 09:44:00) [6]
> Ну это все-таки как-то неправильно, я считаю.
Ну... Таков синтаксис. Мне 5. или .5 тоже не особо нравятся, но так было задумано. ;-)
MBo (2007-06-09 09:39:00) [7]>Я и забыл, что отсутствие знаков в числе расценивается как ноль.
Ну это все-таки как-то неправильно, я считаю.
BDS подчеркивает $; и при наведении мыши говорит Invalid hexadecimal character specification, однако прдкпреждений не выдает и компилирует
Чапаев (2007-06-09 09:33:00) [8]
> шестнадцатиричный ноль, видимо, компилятор пропускает такое
А и правда... Я и забыл, что отсутствие знаков в числе расценивается как ноль. Спасибо. ;-)
Reindeer Moss Eater (2007-06-09 09:22:00) [9]Означает, что дальше последует целое в шестнадцатеричном представлении.
MBo (2007-06-09 09:21:00) [10]шестнадцатиричный ноль, видимо, компилятор пропускает такое