Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1212085608
assassin8899
2008-05-29 22:26
2008.06.22
Locate


4-1191393814
botaniQ
2007-10-03 10:43
2008.06.22
PopUpMenu и tray-приложение...


2-1211656476
SiAVeL
2008-05-24 23:14
2008.06.22
Вообще не знаю Delphi помогите пожалуйста.


2-1211629231
malyar
2008-05-24 15:40
2008.06.22
как отловить момент закрытия файла


2-1211800811
Fr1K
2008-05-26 15:20
2008.06.22
Поиск в файле





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский