원문: http://blog.naver.com/baboneo/80007502224
union을 사용하면 공간 절약, 큰 놈 쪼개기 등의 장점외에도...
**
union SVertexf
{
struct
{
float x, y, z;
};
float v[3];
};
...
SVertexf v;
// 인간적인-_- 구조체 멤버에 접근해서 직관적으로 값을 대입하기도 하고
v.x = 3.0;
v.y = 2.0;
v.z = 5.0;
...
// 요런게 편할 때는 또 요렇게 하기도 하고
glVertex3f(v.v[0], v.v[1], v.v[2]);
glVertex3fv(v.v);
**
행렬도 비슷하게 처리하면 직관성과 for나 while 등 Loop의 장점도 살릴 수 있어 좋다.
이때 한 가지 주의할 점은...
공용체 내 서로 다른 구조체에서 변수 이름 충돌 시 먼저 정의된 변수가 우선한다는 거다.
에러 안남! -_-
따라서 같은 크기의 구조체에서 대응되는 위치에 동일한 이름이 사용될 경우
아무런 오류없이 돌아간다. 하지만 다른 이름 짓기를 권장함!