I came across this code construct in Linux and would like to understand it
struct mystruct {
int x;
int b[40];
};
/*later */
static struct mystruct e = { .x = 5,
.b = {-1},
};
What does .b = {-1} do ? Does it initialize only the first or all elements of array b ? How does it work ?