Пятница, 06.09.2013, 00:53 Приветствую вас Гость | Группа "Гости" 


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 1 1
Модератор форума: C@T, Neo  
delfcode » Delphi » Вопросы по Delphi » Разница вызова функции и процедуры и их выполнения
Разница вызова функции и процедуры и их выполнения
Hargen Дата: Суббота, 25.05.2013, 20:46 | Сообщение # 1
Частый гость
Зарегистрирован: 08.05.2013
Группа: Пользователи
Сообщений: 54
Статус: 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
Группа: Модераторы
Сообщений: 252
Статус: 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
Группа: Пользователи
Сообщений: 54
Статус: Offline
Спасибо


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

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