Понедельник, 23.10.2017, 22:07 Приветствую вас Гость | Группа "Гости" 


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: xXxSh@dowxXx, Anton93, Волк-1024 
delfcode » Delphi » Вопросы по Delphi » Разница вызова функции и процедуры и их выполнения
Разница вызова функции и процедуры и их выполнения
HargenДата: Суббота, 25.05.2013, 20:46 | Сообщение # 1
Участник
Зарегистрирован: 08.05.2013
Группа: Пользователи
Сообщений: 66
Статус: Offline
В общем есть тип записи, ссылка на него, и процедура создания его переменных (Для примера) :
Код

type
TDataRecord = record    
size:longword;
attr:longword;
addr:pointer;
end;
PDataRecord=^TDataRecord;
///////////////////////////
//сама суть             ///
//////////////////////////
function CreateRecord1():PDataRecord;
begin
GetMem(result,sizeof(TDataRecord));
FillChar(result,sizeof(TDataRecord),0);
end;
procedure CreateRecord2(out rec:PDataRecord);
begin
GetMem(rec,sizeof(TDataRecord));
FillChar(rec,sizeof(TDataRecord),0);
end;


Поясните пожалуйста чайнику в чем будет разница в выполнение данных примеров


Главное - не изобретать велосипед



Сообщение отредактировал Hargen - Суббота, 25.05.2013, 20:50
 
NeoДата: Воскресенье, 26.05.2013, 08:04 | Сообщение # 2
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 316
Статус: Offline
Hargen, Разницы абсолютно нет никакой!Различия будут только в вызове.Например,если ты будешь использовать функцию,то код будет примерно такой:
Код

Var p:PDataRecord;
begin
   p:=CreateRecord1;
end;

А если будешь использовать процедуру.то
Код

Var p:PDataRecord;
begin
   CreateRecord2(p);
end;

В обоих случаях,p будет указывать на адрес TDataRecord выделенную памяти.
 
HargenДата: Воскресенье, 26.05.2013, 13:00 | Сообщение # 3
Участник
Зарегистрирован: 08.05.2013
Группа: Пользователи
Сообщений: 66
Статус: Offline
Спасибо

Главное - не изобретать велосипед

 
VolfДата: Воскресенье, 26.05.2013, 15:03 | Сообщение # 4
Частый гость
Зарегистрирован: 11.04.2013
Группа: Пользователи
Сообщений: 41
Статус: Offline
Разница не только в вызове но и в том что функция имеет в своей структуре ответ(result),а процедура это просто набор команд
 
delfcode » Delphi » Вопросы по Delphi » Разница вызова функции и процедуры и их выполнения
Страница 1 из 11
Поиск:

delfcode.ru © 2008 - 2017 Хостинг от uCoz