Форум: "Потрепаться";
Текущий архив: 2003.01.23;
Скачать: [xml.tar.bz2];
ВнизСтранные вещи... Найти похожие ветки
← →
Pat (2003-01-04 23:34) [0]Вот, обнаружил такое...даже и не знаю, как назвать...
для примера используем BP 7.0 и Делфи 5.
Почти одинаковые программы
BP 7.0:
function f(f:integer):integer;
begin
f:=1
end;
begin
writeln (f(5))
end.Б
Делфи 5:
procedure TForm1.Button1Click(Sender: TObject);
function f(f:integer):integer;
begin
f:=1
end;
begin
caption:=inttostr(f(5))
end;
Собственно вопрос: Почему и как это вообще работает? Результат в BP - выводит 6912, в Делфи - 5
← →
wicked (2003-01-05 00:05) [1]чего?.....
> function f( f:integer):integer;
и оно скомпилировалось?.....
← →
Pat (2003-01-05 00:23) [2]Дык я сам удивился...тем не менее, что-то выводит...
← →
Ihor Osov'yak (2003-01-05 02:19) [3]ну наверно посчасливилось нарватся на фишку в реализации компиляторов....
В паскале f:=1; наверно делает присвоение параметру, то есть результат остается неопределенным (вернее равен мусору в ax), в делфи - результату ... Посмотрите на уровне диссамблера ( в паскале - юзайте внешний отладчик) - и станет понятно...
... Ну неучли в борланде столь оригинального финта ушами...
... Зы - а делфи то чесно сделала между прочим один хинт и одно предупреждение на такое творение... Так что - обращайте внимание на предупреждения. На то они и предупреждения.
← →
Anatoly Podgoretsky (2003-01-05 11:17) [4]Pat © (05.01.03 00:23)
тем не менее
Используй научный подход
Result := 1;
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.01.23;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c