Например, скажите, что у нас есть объединение
typedef union {
unsigned long U32;
float f;
}U_U32_F;
То, когда переменная этого типа объединения объявляется, является там способом установить начальное значение?
U_U32_F u = 0xffffffff; // Does not work...is there a correct syntax for this?
Используйте список инициализатора:
U_U32_F u = { 0xffffffff };
Вы можете установить других участников, чем первый через
U_U32_F u = { .f = 42.0 };
Обратите внимание, что инициализация на каждый член союза не работает на компиляторах pre-C99, из которых есть угнетающее число. Например, текущий компилятор Microsoft C его не поддерживает. (Смутно вспоминаю, что он даже не поддерживает инициализацию для первого члена, которая восходит к K&R II, но я могу ошибаться в этом)
.