Хорошо, это имеет смысл, спасибо за разъяснения.

я есть следующий код в файле C ++:

#include <sys/socket.h>

// ...
void someFunc() {
    struct msghdr msg = {0};  // <<< Uninitialized member here
}

Когда я собираю сg++ с помощью-Wall -WextraЯ получаю предупреждения:

error: missing initializer for member 'msghdr::msg_namelen'
...same for several other fields

Моя проблема заключается в следующем: я не могу явно инициализировать все поля, потому что я не знаю, какие поля будут существовать (кросс-платформенные) вstruct msghdr, Структура не имеет конструктора по умолчанию, так как это структура C. У меня сложилось впечатление, что= {0} форма привела к нулевой инициализации всех полей (что было бы хорошо для меня), ноg++ Сообщение об ошибке предполагает, что нет.

Какие у меня есть варианты?

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

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