2010-05-03 3 views

답변

8

가끔 일부 데이터 사이에 노동 조합을 만드는 데 사용 :

typedef union { 
    struct { 
     int x, y, z; 
    }; 
    int elements[3]; 
} Point; 

내가 쉽게 elements와 좌표를 통해 루프뿐만 아니라 등 짧은 형태 x, yz를 사용하는 대신 elements[0] 수있는이 방법

+0

물론 이러한 사용법은 정의되지 않은 동작 일 수 있습니다. 모두가 해내므로 유효하다는 의미는 아닙니다. :) – unwind

3

두 값이 함께 소속되어 있음을 표현하고 싶지만 특정 그룹을 독립형으로 필요로하지 않는다면 완벽하게 괜찮습니다.

이것은 약간의 패딕 틱으로 보일지도 모르겠지만 사물의 공학적 측면에 기대어 있지만 명확성과 구조를 추가하는 큰 방법으로 볼 수 있습니다.

struct State 
{ 
    Point position; 
    float health; 
    int level; 
    int lives_left; 
    int last_checkpoint; 
    char filename[32]; 
}; 

struct State 
{ 
    struct 
    { 
    Point position; 
    float health; 
    int level; 
    int lives_left; 
    }    player; 
    struct { 
    int last_checkpoint; 
    char filename[32]; 
    }    level; 
} 

대 마지막 경우는 명확하게 들여 조금 어렵습니다,하지만 일부 값은과 연관되어 있음을 매우 분명하게 표현 않습니다

고려 플레이어, 레벨이있는 ​​플레이어가 있습니다.

관련 문제