공용체(Union Type)의 정의와 의미


공용체는 union이라는 키워드를 사용해서 정의한다.


공용체는 공용체의 변수를 구성하는 멤버의 주소값이 동일하며,  구조체의 크기는 구조체의 모든 멤버의 크기를 합한크기이지만, 공용체의 크기는 공용체 멤버중 가장 큰 멤버의 크기이다. 이는 공용체는 모든 멤버가 같은 메모리주소를 공유하기 때문이다.


ex)


typedef struct dbshort

{

unsigned short upper;

unsigned short lower;

}DBShort;

typedef union rdbuf

{

int iBuf; // 4바이트 메모리주소 공유

char bBuf[4]; // 배열순으로 차례대로 데이터 저장

DBShort sBuf; // 구조체 멤버선언 순으로 차례대로 데이터 저장

} RDBuf; 


열거형(Enumerated Type)의 정의와 의미


열거형 자료형 syllable 을 정의한다는 것은 syllable형 변수에 저장이 가능한 정수값을 결정하겠다는 뜻이다.


typedef enum syllable

{

Do=1, Re=2, Mi=3, Fa=4, So=5, La=6, Ti=7

};Syllable// Do를 정수 1로 의미하는 상수로 정의한다. 그리고 이 값은 syllable 형 변수에 저장이 가능하다.

...

Syllable tone;

tone = Do; // tone = 1;과 같은선언 , tone 은 1~7까지의 정수만 저장 가능하다.


열거형을 정의할때 , 상수의값을 명시하지 않으면 0에서부터 시작해 1씩 증가하는 형태로, 부분만 명시되어 있으면 , 앞서선언된 상수보다 1 증가된 값이 할당된다. 열거형의 유용함은 둘 이상의 연관이있는 이름을 상수로 선언함으로써 프로그램의 가독성을 높이는데 있다.





+ Recent posts