When the C99 extensions setting is on, the compiler allows an extended syntax for specifying which structure or array members to initialize. The following listing shows an example.
#pragma c99 on struct X { int a,b,c; } x = { .c = 3, .a = 1, 2 }; union U { char a; long b; } u = { .b = 1234567 }; int arr1[6] = { 1,2, [4] = 3,4 }; int arr2[6] = { 1, [1 ... 4] = 3,4 }; /* GCC only, not part of C99. */