If I understand correctly,
One brace is needed for things within struct A
, e.g.
struct A a = { .a = 1, .b = 2 };
Two braces are needed for a two dimensional array, e.g.
int array[2][2] = {
{ 1, 1 },
{ 1, 1 }
};
The final brace is needed for things within struct B
.
Finally, to add int c[16]
to struct B
, you can replace the last line of your snippet with the following:
struct B b = {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{DEFAULT16}};
Or use proper macro substitution for readability.