У меня есть класс, который я сериализую для отправки через сокет unix, и у него должна быть строка, которую я сохранил как массив символов. Могу ли я инициализировать его в конструкторе иначе, чем здесь?
typedef struct SerialFunctionStatus_t {
SerialFunctionStatus_t()
: serial_rx_count(0), serial_tx_count(0), socket_rx_count(0), socket_tx_count(0)
{ port[0] = '\0'; }
uint32_t serial_rx_count;
uint32_t serial_tx_count;
uint32_t socket_rx_count;
uint32_t socket_tx_count;
char port[20];
} SerialFunctionStatus_t;
Спасибо за это, BKB. Вы можете сказать, что я действительно программист на C?





Поместите port() в список инициализаторов. Это приводит к тому, что порт "инициализируется значением" (12.6.2), что для массивов встроенных функций означает инициализацию нуля (8.5).
О чем ты говоришь? port () отсутствует в списке инициализаторов. Или он свой пост редактировал?
В C++ вам не нужен typedef.