Я создаю какой-то интерфейс для программы. Для запуска программы я использую вызов CreateProcess()
, который, среди прочего, получает указатель на структуру STARTUPINFO
. Для инициализации структуры, которую я использовал:
STARTUPINFO startupInfo = {0}; // Or even '\0'.
startupInfo.cb = sizeof(startupInfo);
При компиляции программы с включенным GCC этими наборами предупреждений -Wall -Wextra
это дает мне предупреждение о том, что отсутствует инициализатор, указывающий на первую строку.
warning: missing initializer
warning: (near initialization for 'startupInfo.lpReserved')
Итак, я закончил:
STARTUPINFO startupInfo;
memset(&startupInfo, 0, sizeof(startupInfo));
startupInfo.cb = sizeof(startupInfo);
И таким образом компилятор не дает никаких предупреждений. Вопрос в том, в чем разница между этими способами инициализации структуры? Используя первый метод, не инициализируется ли структура? Какой из них вы бы порекомендовали?