Главная страница
    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.47 MB
Время: 0.034 c
15-1210348051
wp2
2008-05-09 19:47
2008.06.22
Zyxel vs. D-Link (срочный вопрос)


15-1210430194
SKIPtr
2008-05-10 18:36
2008.06.22
на новом компе не хотят работать некоторые программы


15-1210500773
dr_creigan
2008-05-11 14:12
2008.06.22
Все текстовые форматы


2-1211782997
Сергей
2008-05-26 10:23
2008.06.22
совместный доступ к таблице Patadox-7


3-1198907019
mefodiy
2007-12-29 08:43
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский