コメントでリクエストしたとおり:ここでは非ブロックスコープで(グローバルスコープまたはファイルスコープにすることができます):
#include <inttypes.h>
#include <stdio.h>
typedef union {
uint32_t uint32;
float f;
} aliasing;
aliasing a = { 0xffffffff };
int main(){
printf("%u %f\n", a.uint32, a.f); // output: 4294967295 -1.#QNAN0
return 0;
}
また、構造体(元の質問)内にそれが必要であり、それでも静的初期化が必要な場合は、次のことができます:
#include <inttypes.h>
#include <stdio.h>
typedef union {
uint32_t uint32;
float f;
} aliasing;
typedef struct {
aliasing a;
int otherstuff;
} thestruct_t;
thestruct_t thestruct = { { 0xffffffff }, 0 };
int main(){
printf("%u %f\n", thestruct.a.uint32, thestruct.a.f);
// output: 4294967295 -1.#QNAN0
return 0;
}