Есть ли причина предпочесть memset / ZeroMemory для инициализации значений для структур WinAPI?

В программировании Win32 используется несколько структур POD. Эти структуры часто необходимо обнулить перед использованием.

Это можно сделать, вызвав memset () / ZeroMemory ()

STRUCT theStruct;
ZeroMemory( &theStruct, sizeof( theStruct ) );

или по инициализации значения:

STRUCT theStruct = {};

Хотя два вышеуказанных варианта в целом не эквивалентны :

  • обрабатывают заполнение по-разному
  • обрабатывают переменные, не являющиеся членами POD, по-разному

в случае структур POD, используемых в Win32, они выглядят эквивалентными.

Есть ли случаи, когда memset () / ZeroMemory () следует использовать вместо инициализации значения с помощью Структуры Win32 POD?

14
задан Community 23 May 2017 в 11:47
поделиться