I had the same problem. For C89 the following is true:
With C89-style initializers, structure members must be initialized in
the order declared, and only the first member of a union can be
initialized
I found this explanation at:
Initialization of structures and unions