Re: Should we use MemSet or {0} for struct initialization?

Поиск
Список
Период
Сортировка
От John Naylor
Тема Re: Should we use MemSet or {0} for struct initialization?
Дата
Msg-id CAFBsxsEyj1nU96+_Gk0qHwt_Fe7ainRhKzX4ktU6PrnqM-EP2w@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Should we use MemSet or {0} for struct initialization?  (Jelte Fennema <postgres@jeltef.nl>)
Ответы Re: Should we use MemSet or {0} for struct initialization?  (Chapman Flack <chap@anastigmatix.net>)
Re: Should we use MemSet or {0} for struct initialization?  (Jelte Fennema <postgres@jeltef.nl>)
Список pgsql-hackers

On Fri, Sep 1, 2023 at 7:48 PM Jelte Fennema <postgres@jeltef.nl> wrote:

> The C standard says:
> > When a value is stored in an object of structure or union type, including in a member object, the bytes of the object representation that correspond to any padding bytes take unspecified values.
>
> So if you set any of the fields after a MemSet, the values of the
> padding bytes that were set to 0 are now unspecified. It seems much
> safer to actually spell out the padding fields of a hash key.

No, the standard is telling you why you need to memset if consistency of padding bytes matters.

--
John Naylor
EDB: http://www.enterprisedb.com

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Amit Kapila
Дата:
Сообщение: Re: Fix a typo in decode.c
Следующее
От: Chapman Flack
Дата:
Сообщение: Re: Should we use MemSet or {0} for struct initialization?