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

Вниз

Результат функции всегда по-умолчанию нулевой?   Найти похожие ветки 

 
Дрёма   (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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.019 c
15-1210112553
Дрёма
2008-05-07 02:22
2008.06.22
Результат функции всегда по-умолчанию нулевой?


1-1194937505
DancerMan
2007-11-13 10:05
2008.06.22
Обмен значениями элементов ListView


15-1209673346
Kolan
2008-05-02 00:22
2008.06.22
Помогите с формулой расчета аннуитета&#133


3-1200602988
DeadMeat
2008-01-17 23:49
2008.06.22
Непонятки с ADO или OLE DB


15-1210621638
antonn
2008-05-12 23:47
2008.06.22
AD (LDAP) на WinXP