Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.26;
Скачать: CL | DM;

Вниз

Полюбуйтесь на глюк компилятора в 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.016 c
11-83425
Gandalf
2002-08-19 10:42
2003.05.26
KOLnMCK 1.41 !


14-83695
sapsi
2003-05-05 09:55
2003.05.26
Язык программирования для носителя английского языка


1-83505
Боян Георгиев
2003-05-15 23:16
2003.05.26
^String i TList Где ошибка


9-83315
ЛехаШ
2002-11-04 09:05
2003.05.26
Столкновение шаров


1-83568
NAlexey
2003-05-14 09:23
2003.05.26
Заставить TEdit не пищать