У меня есть структура, которая выглядит примерно так:Инициализация элемента массива элементов структуры по имени
typedef struct
{
uint32_t a;
uint32_t b;
uint32_t c[5];
uint32_t d;
} MY_STRUCT_T;
Я хочу инициализировать c
, по имени, в ненулевое значение. Я хочу, чтобы все остальное, чтобы быть 0.
Если c
не массив, я мог бы сделать:
static MY_STRUCT_T my_struct = {.b = 1};
И я знаю, что могу это сделать:
static MY_STRUCT_T my_struct = {.c[0]=5,
.c[1]=5,
.c[2]=5,
.c[3]=5,
.c[4]=5};
, но я, если интересно был более изящный синтаксис которого я не знаю: Что-то вроде:
static MY_STRUCT_T my_struct = {.c[] = {5,5,5,5,5}};
Я прочитал следующее, но они не отвечают на этот вопрос:
Initializing a struct to 0
Initialize/reset struct to zero/null
A better way to initialize a static array member of a class in C++ (const would be preferred though)
How to initialize all members of an array to the same value?
Маленькой разницы между этим и [Как инициализировать все элементы массива в то же значение] (http://stackoverflow.com/q/201101/2410359), кроме части '.c ='. – chux