프로그래밍[Univ]/C언어

[C언어] 유니온 union 열거형 enum

Cloud Travel 2008. 12. 19. 11:06
1. 유니온(union)
 1) 선언과 사용방법에 있어서는 구조체와 동일하다.
 2) 메모리 할당 방식에서 구조체와 차이가 있다.
   > 멤버중에서 가장 큰 자료형의 크기로 메모리가 할당
   > 멤버 변수들이 동일한 기억공간에 중복되어 할당
 3) 예약어 union을 사용한다,
   ex) union data{
           char ch;
           int num;
        };
   

 cf) struct data{
            char ch;
            int num;
        };
 


2. 열거형
 1) 사용자가 필요에 의해서 만들어 사용하는 자료형
 2) 예약어 enum을 사용
 3) 열거형으로 선언된 변수는 집합에 포함되는 상수값만을 갖게된다.
 4) 처음에 기술된 열거상수는 0 을가지고 차례로 1씩 증가한다,
  ex)
   enum exam_{a,b,c,d,e};
   exam_ test;
   ----------------------
   #define a 0
   #define b 1
   #define c 2
   #define d 3
   #define e 4
   위에 있는 enum에 의한 것과  define에 의한 것은 같은 것이다.
 5) 열거형은 의미 파악이 어려운 것 대신 이해하기 쉬운 단어로 표현할 수 있게 한다.
 6) 열거 상수에 수치 대입
  ex)
   enum exam_ {a = -1 , b, c = 25, d, e };
   exam_ test;
   ------------------------------------
   #define a -1
   #define b 0
   #define c 25
   #define d 26
   #define e 27
   위에 있는 enum에 의한 것과 define에 의한 것은 같은 것이다.
   열거 상수에 수치를 대입할 경우(어느 한 변수에 값이 지정 될 경우)
   그 다음 상수는 이전 상수 +1이 된다.(다음 변수는 이전 변수값에 +1이 된다.)