Was just reading about some anonymous structures and how it is isn\'t standard and some general use case for it is undefined behaviour...
This is the basic case:
I did not get why you have used float v[2];
The simple union for a point structure can be defined as:
union{ struct { float a; float b; }; } Point;
You can access the values in unioin as:
Point.a = 10.5; point.b = 12.2; //example