Michel Keijzers Michel Keijzers - 21 days ago 6
C Question

Initializing a multidimensional array: {0} versus {{{0}}}

In the C code I am analyzing, there are a lot of multidimensional (struct) arrays which are initialized with a different number of curly brackets e.g.

{{0}}
or
{{{0}}}
.

However, replacing these by
{0}
also works perfectly.

Is there a (functional) difference between using one or more sets of curly brackets (
{}
) occurrences ?

Answer

No, there is no functional difference. The C standard allows to leave out intermediate {}. In particular, the form { 0 } is an initializer that can be used for all data types.

Comments