Как я могу инициализировать запись, объявленную как локальная переменная?

Я использую запись, состоявшую из строк, булевских переменных, целых чисел, валют и массивов других записей в методе класса. Я хотел бы рекурсивно инициализировать все поля типа примитива к пустому/ложному/нулевому. Delphi, кажется, не делает это по умолчанию. Существует ли простой способ выполнить это, которое не включает доступ к каждому полю по имени и установку его вручную?

9
задан Kenneth Cochran 13 August 2010 в 14:18
поделиться

2 ответа

Вы можете использовать любую из следующих конструкций (где Foo - запись).

FillChar(Foo, SizeOf(Foo), 0); 

ZeroMemory(@Foo, SizeOf(Foo));

Из сообщения Аллена Бауэра

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

11
ответ дан 4 December 2019 в 15:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: