Этот синтаксис использует новую функцию стандарта языка C99 , называемую назначенными инициализаторами .Эта функция не является частью более распространенного стандарта C89 (он же ANSI C), поэтому компилятор C89 выдаст вам синтаксические ошибки при попытке скомпилировать код, который его использует.
Чтобы исправить это, скажите вашему компилятору:используйте режим C99, если он есть.Например, если вы используете GCC, вы должны передать опцию компилятора -std=c99
.Если ваш компилятор вообще не поддерживает C99, вам придется либо переключиться на компилятор, который это делает, либо реорганизовать код, чтобы избежать использования функций C99.