Форум: "Прочее";
Текущий архив: 2008.06.22;
Скачать: [xml.tar.bz2];
ВнизРезультат функции всегда по-умолчанию нулевой? Найти похожие ветки
← →
Дрёма (2008-05-07 02:22) [0]Сабж.
← →
Palladin © (2008-05-07 02:27) [1]Результат функции всегда по умолчанию неопределен.
← →
Дрёма (2008-05-07 02:56) [2]Немного поэксперементировал, у меня нулевой получается.
← →
Palladin © (2008-05-07 03:17) [3]Это заблуждение.
← →
TUser © (2008-05-07 09:38) [4]Результат функции
function AA: integer;
begin
end;
зависит, например, от компилятора и от его настроек.
← →
Ega23 © (2008-05-07 09:49) [5]
> Немного поэксперементировал, у меня нулевой получается.
Мало поэксперементировал...
← →
Loginov Dmitry © (2008-05-07 12:56) [6]
> Результат функции всегда по-умолчанию нулевой?
Для простых типов - неопределен.
Для динамических массивов и строк - соответствует временной переменной, которую компилятор создает до/для вызова функции.
← →
Loginov Dmitry © (2008-05-07 13:03) [7]
> соответствует временной переменной
она создается, например, при таком вызове:
Function1(Function2())
и передается как параметр в Function1. При многократном вызове этого кода в цикле значение Result для Function2 равен ее предыдущему результату, поэтому если функция возвращает строку, то она должна как минимум присвоить пустую строку.
← →
Германн © (2008-05-07 14:21) [8]
> Немного поэксперементировал, у меня нулевой получается.
Хорошо ещё что не два нуля. :)
← →
Anatoly Podgoretsky © (2008-05-07 14:36) [9]Если результат всегда одинаковый, то над заменить процедурой, а еще лучше вообще выкинуть, поскольку переменной в этом случае можно присвоить константу, а если дальше пойти, то и переменная не нужна, просто можно сразу работать с констатной.
← →
Дрёма (2008-05-08 02:26) [10]
> Anatoly Podgoretsky © (07.05.08 14:36) [9]
>
> Если результат всегда одинаковый, то над заменить процедурой,function (a : Boolean) : Integer;
begin
if a = 0 then exit;
...
Кто нибудь может привести пример где результат получался бы не нулевой?
← →
Asteroid © (2008-05-08 05:24) [11]> Кто нибудь может привести пример где результат получался бы не нулевой?
Когда параметр передается через стек, а в eax остался результат предыдущей операции.
← →
ЮЮ © (2008-05-08 06:39) [12]> Кто нибудь может привести пример где результат получался
> бы не нулевой?
А наличие варнинга не смущает?
Или тв на такую чушь не обращаешь внимания?
А с твоим стилем программирования — не мешало бы.
← →
TUser © (2008-05-08 08:33) [13]
> Дрёма (08.05.08 02:26) [10]
>
>
Фрипаскалем скомпильни
← →
guav © (2008-05-08 11:13) [14]> function (a : Boolean) : Integer;
> begin
> if a = 0 then exit;
А разве Boolean неявно приводится к целому ?
← →
Palladin © (2008-05-08 12:29) [15]
> Дрёма (08.05.08 02:26) [10]
:) он еще и предупреждениям компилятора не верит... это LMD однозначно
Function Func1:String;
Begin
Result:="блабла";
End
Function Func2:Integer;
Begin
End;
ButtonClick
ShowMessage(Func1);
ShowMessage(IntToStr(Func2));
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2008.06.22;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.048 c