Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Function 2 значения


Страницы:   1 2

Stepan4ik ©   (2014-09-21 00:41:00) 

Как вернуть 2 значения с функции ?
1-ое Result, а 2-е ?
И можно пример, пжл )


Inovet   (2014-09-30 20:12:00) [1]

> [21] DQ   (30.09.14 14:54)
> Возврат функции есть значение в регистре EAX

Какая разница где оно там возвращается, это не влияет на язык.


junglecat   (2014-09-30 16:38:00) [2]

> не вбивайте double в Яндекс

а что там такого страшного?


brother   (2014-09-30 16:21:00) [3]

я про инерпретацию...


DQ   (2014-09-30 15:32:00) [4]

> возвращаем word

Ну и?) Возвращаем одноWord :)
А уже что с ним дальше это отдельная история.

> double возвращается через ST0 в стеке fpu

мда? Разве не по указателю? Думал в ST0 возвращаются только при работе с функциями FPU. Ну может быть, спасибо за просвещение. С:

Кстати не вбивайте double в Яндекс.... о___0


junglecat   (2014-09-30 15:09:00) [5]

> Возврат функции есть значение в регистре EAX

это если влезает. double возвращается через ST0 в стеке fpu, что не влезло - через скрытые var-параметры


brother   (2014-09-30 14:56:00) [6]

> Но вернуть можно только одно значение.

возвращаем word интерпетируем как 2 byte :)


DQ   (2014-09-30 14:54:00) [7]

> Как вернуть 2 значения с функции ?

Никак. Возврат функции есть значение в регистре EAX.
Можно вернуть указатель. Можно менять значения переменных внутри функции переданные туды по указателям. Но вернутьможно только одно значение.


Дмитрий   (2014-09-26 16:12:00) [8]

еще можно возвращать массив


  (2014-09-25 16:52:00) [9]

Удалено модератором


Керк   (2014-09-25 16:41:00) [10]

Формально MyResult - это не два значения, а одно :)


brother   (2014-09-23 18:01:00) [11]

> При обычном вызове он бьёт ошибку. Мол тип MyResult...

чего именно в ошибке Вы не поняли?


antonn   (2014-09-23 16:50:00) [12]


> Stepan4ik   (21.09.14 02:03) [9]
>
> Всё. Догнал.
> А как функцию теперь вызватьи  получить значения ?
> При обычном вызове он бьёт ошибку. Мол тип MyResult...

ну тогда есть уже Tpoint на 2 значения и TRecord на 4 значения =)


  (2014-09-22 07:30:00) [13]

Удалено модератором


Pavia   (2014-09-21 18:31:00) [14]

function SumSub(a,b:Integer; var Sum:Integer; var Sub:Integer):Boolean;
begin
Result:=True;
Sub:=a-b;
Sum:=a+b;
Result:=((not (a xor b) and (a xor Sum)) shr 31) <>0;
end;


Плохиш   (2014-09-21 11:39:00) [15]


> Stepan4ik   (21.09.14 02:03) [9]
> Всё. Догнал.
> А как функцию теперь вызватьи  получить значения ?
> При обычном вызове он бьёт ошибку. Мол тип MyResult...
>

В ошибке, которую бьют, разве не написано, что надо поменять прокладку?


Германн   (2014-09-21 03:24:00) [16]


> сорри, чейто понесло :))
>

Ну да. Конечно. Суперпупер проекты вы клепаете без проблем. А основы паскаля/Дельфи  почти забыли.


Rouse__   (2014-09-21 03:01:00) [17]

Делай переменную типа записи MyResult и ей присваивай результат вызова функции.
(Пфф... типа ей мы типо присвоим типо результат - сорри, чейто понесло :))


Stepan4ik   (2014-09-21 02:47:00) [18]

?


Stepan4ik   (2014-09-21 02:03:00) [19]

Всё. Догнал.
А как функцию теперь вызватьи  получить значения ?
При обычном вызове он бьёт ошибку. Мол тип MyResult...



   type
 MyResult = record
   sum:integer;
   raz:integer;
   end;

function GetSum(a, b : Integer) : MyResult;
begin
 Result.sum:=a+b;
 Result.raz:=a-b;
end;


Stepan4ik   (2014-09-21 02:02:00) [20]

Всё. Догнал.
А как функцию теперь вызватьи  получить значения ?
При обычном вызове он бьёт ошибку. Мол тип MyResult...



   type
 MyResult = record
   sum:integer;
   raz:integer;
   end;

function GetSum(a, b : Integer) : MyResult;
begin
 Result.sum:=a+b;
 Result.raz:=a-b;
end;


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо