Question: Is it safe to cast only part of a structure as an array if your guaranteed that another programmer isn't going to change the order of objects in the struct?
Because x, y and z are common names. I'd avoid calling any enumeration values single-letters.
EDIT: It seems harsh taking it up when it's so easy to access aForce.f[0], aForce.f[1] and aForce.f[2], instead of aForce.f[x], aForce.f[y] and aForce.f[z].
Why not go the object oriented path and create a normalize member function ? That way if the structure ever changes it'll be easy to look over what needs to be re-implemented.