Хорошо, это имеет смысл, спасибо за разъяснения.
я есть следующий код в файле 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++
Сообщение об ошибке предполагает, что нет.
Какие у меня есть варианты?