Точнее,
{} оператор возвращает несколько байтов памяти,
Поэтому, когда вы используете
{320f, 50f, 1f, 0xFF00FFCC}
Он возвращает продолжающиеся 16 байтов памяти, которые затем копируются с помощью команды "memcpy" в переменную struct.
Так что, если вы поставите их не по порядку, программа компилируется нормально, но не работает нормально.
Лучшим вариантом будет использование конструкторов.