Главная страница
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.018 c
3-1200387283
Андрей Пл
2008-01-15 11:54
2008.06.22
Сравнение дат в InterBase


15-1210246527
pasha_golub
2008-05-08 15:35
2008.06.22
IDE валится - невозможно работать


2-1212056258
slimer
2008-05-29 14:17
2008.06.22
Результат TQRExpr


2-1211652384
programmer90
2008-05-24 22:06
2008.06.22
Free Pascal на Delphi -"поймать и удержать"


2-1211887395
MVN
2008-05-27 15:23
2008.06.22
Dialog