Главная страница
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.49 MB
Время: 0.03 c
2-1211805768
opoloXAI
2008-05-26 16:42
2008.06.22
CF_Text и CF_Bitmap вместе


2-1212039243
brother
2008-05-29 09:34
2008.06.22
имеет ли смысл задержка?


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


2-1211821567
Рустам Ганеев
2008-05-26 21:06
2008.06.22
DBgrid, установка курсора в нужную позицию


2-1212044089
pirks
2008-05-29 10:54
2008.06.22
Каскадные прокси