Форум: "Потрепаться";
Текущий архив: 2003.05.26;
Скачать: [xml.tar.bz2];
Вниз
Полюбуйтесь на глюк компилятора в D6 Найти похожие ветки
← →
_Igorek (2003-05-07 11:52) [0]Если он ТАКОЕ хавает, то что там можно еще ожидать?
procedure TForm1.Button1Click(Sender: TObject);
var
a: Integer;
begin
a := 2 + 2; +++++++++++++++++
a := 2 + 2; +++++++++++++++++
a := 2 + 2; +++++++++++++++++
a := 2 + 2; +++++++++++++++++
a := 2 + 2;
end;
← →
Danilka (2003-05-07 12:05) [1]_Igorek (07.05.03 11:52)
что можно ожидать от человека, который такое пишет? ;))
← →
McSimm (2003-05-07 12:06) [2]И чего такого странного в этом?
унарный плюс, просто отбрасывается компилятором.
+a := 2 + 2;
← →
uw (2003-05-07 12:10) [3]И правда - только в Delphi. В BP 7.0 такой фокус не проходит. Я в этом усматриваю тенденцию продвижения к ++a и a++!
← →
_Igorek (2003-05-07 12:18) [4]Danilka © (07.05.03 12:05)
Да ладно тебе, это просто пример :-)
McSimm © (07.05.03 12:06)
Не вижу смысла в унарном плюсе.
← →
Palladin (2003-05-07 12:19) [5]
> _Igorek (07.05.03 11:52)
парень, ты не волнуйся, все что может привести к крупномасштабной катастрофе компилятором не примется...
← →
_Igorek (2003-05-07 12:21) [6]Наверно просто для ясности при написании констант - a := +7
← →
DiamondShark (2003-05-07 12:29) [7]А синтаксические диаграммы посмотреть?
Можно ведь и так ещё
a := ------------------1;
← →
_Igorek (2003-05-07 12:30) [8]Palladin © (07.05.03 12:19)
Да ну? Сильно сомневаюсь, но это уже другая тема. Кстати у меня пару раз компилятор выдавал internal error. В хелпе написано: "Once you have identified the problem, we ask that you create the smallest possible test case that still reproduces the error and submit it to Borland."
Так вот. Не все в порядке на этом фронте.
← →
_Igorek (2003-05-07 12:32) [9]DiamondShark © (07.05.03 12:29)
Каюсь, каюсь... Век живи, век учись. :-)
← →
REA (2003-05-07 12:33) [10]А в Си есть еще макроподстановки, Template и перегрузка операторов. Вот где разгуляться можно. Никто не угадает, что программист сделал.
← →
DiamondShark (2003-05-07 12:36) [11]
> uw © (07.05.03 12:10)
Нет. В этом другая тенденция.
В ТР7 ведь нельзя было и вот так делать
type
Rec = record a,b,c: integer end;
function Zzz(x, y, z: integer): Rec;
begin
...
end;
...
Zzz(1,2,3).a := 1234;
Потому что записи нельзя было возвращать.
А в дельфи можно. Но пришлось понятие левой части расширить. Теперь формально там может быть выражение.
Естественно, семантика выражения должна допускать присваивание.
← →
Palladin (2003-05-07 12:37) [12]
> крупномасштабной катастрофе
это я имел в виду нарушение синтаксиса паскаля на столько, что это был бы не паскаль...
← →
Palladin (2003-05-07 12:41) [13]
> DiamondShark © (07.05.03 12:36)
записи можно было возвращать
← →
McSimm (2003-05-07 12:43) [14]>Не вижу смысла в унарном плюсе.
А его (смысла) и нет :)
Ни в правой, ни в левой части выражения.
Но тем не менее он позволителен и странно что такой пустяк вызвал такую реакцию.
← →
Palladin (2003-05-07 12:48) [15]
> DiamondShark © (07.05.03 12:36)
!!!
прошу прощения...
конечно же нельзя
← →
_Igorek (2003-05-07 12:53) [16]McSimm © (07.05.03 12:43)
>Но тем не менее он позволителен и странно что такой пустяк вызвал такую реакцию.
Реакция вызвана незнанием и я уже покаялся, что не удосужился посмотреть грамматику.
← →
handra (2003-05-07 13:19) [17]такое тоже прокатывает:
var rDesk: TRect;
begin
GetWindowRect(GetDesktopWindow,rDes k,);
end;
← →
uw (2003-05-07 13:26) [18]>DiamondShark © (07.05.03 12:36)
a := 2 + 2; ---
не проходит. Поэтому всего лишь тенденция!
← →
_Igorek (2003-05-07 13:29) [19]handra © (07.05.03 13:19)
не прокатывает
[Error] Unit1.pas(95): Too many actual parameters
← →
handra (2003-05-07 13:32) [20]_Igorek (07.05.03 13:29)
Версия Delphi? У меня D7 Ent.
← →
_Igorek (2003-05-07 13:38) [21]D Ent
Version 6.0
Build 6.163
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.05.26;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c