Разница между Initialize (), Default () и FillChar ()

Позволять'говорят, что у вас есть местная запись,я хотел бы инициализировать:

type 
  TMyRec=record
    Val1, Val2:Integer;
  end;

procedure MyProc;
var
  MyVar:TMyRec;
begin
  // ... ?

  WriteLn(Val1,Val2);
end;

Помимо настройки каждого полявручную"Есть несколько способов сделать это.

использованиеинициализировать():

Initialize(MyVar);

использованиеПо умолчанию():

MyVar := Default(TMyVar);

использованиеFillChar:

FillChar(MyVar,SizeOf(MyVar),0);

Определить пустойпостояннаяи назначьте это переменной

const cMyVar:TMyVar=();  
...    
MyVar := cMyVar;    

Все вышеперечисленное, похоже, работает в ситуациях, подобных этому примеру. Я думаю, вы могли бы даже определить глобальную переменную, чтобы инициализировать ее.

Но есть ли предпочтительный метод? Или есть определенные ситуации, когда этоне рекомендуется использовать что-либо из вышеперечисленного, или там, где это просто победилот работаешь?

Короче говоря, чтоокончательныйПравильнотм инициализировать локальную переменную стека? :-)

Ответы на вопрос(1)

Ваш ответ на вопрос