C99 does not allow anonymous unions in a struct