공용체(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 증가된 값이 할당된다. 열거형의 유용함은 둘 이상의 연관이있는 이름을 상수로 선언함으로써 프로그램의 가독성을 높이는데 있다.
'C언어 > 열혈C' 카테고리의 다른 글
C : Chapter -21 메모리 관리와 메모리의 동적할당 (0) | 2018.04.04 |
---|---|
C : Chapter -20 파일 입출력 (0) | 2018.03.31 |
C : Chapter -18 구조체와 사용자 정의 자료형 (0) | 2018.03.27 |
C : Chapter-17 문자와 문자열 관련 함수 (0) | 2018.03.27 |
C : Chapter -16 함수 포인터와 void 포인터 (0) | 2018.03.25 |