다음을 통해 공유


C 열거형 선언

열거형의 명명 된 정수 상수 집합으로 구성 됩니다.열거 형식 선언 (옵션) 열거 태그의 이름을 제공 하 고 일련의 명명 된 정수 식별자를 정의 (은 "열거형"열거자 상수를 "설정," 라는 "표시기" 또는 "멤버").열거형 형식 사용 하 여 변수 값을 해당 형식으로 정의 된 열거형 집합 중 하나를 저장 합니다.

변수는 enum 형식의 인덱싱 식 하 고 모든 산술 및 관계 연산자의 피연산자로 사용할 수 있습니다.제공 하는 대신 열거형의 #define 전처리기 지시문 값을 생성할 수 있습니다 하 고 정상적인 범위 지정 규칙을 따르는 장점으로.

ANSI C에서는 항상 열거자 상수 값을 정의 하는 식이 있는 int 를 입력 합니다. 따라서 열거형 변수와 연결 저장소 하나에 필요한 저장 됩니다 int 값입니다.열거형 상수 또는 열거형된 형식의 값을 사용할 수 있습니다 아무 곳 이나 C 언어는 정수 식을 사용할 수 있습니다.

구문

  • enum 지정 자가:
    enum identifier opt**{** enumerator-list }

    열거형 식별자

선택적인 식별자 에 의해 정의 된 열거형 형식의 이름을 지정 열거자 목록.이 id는 목록에서 지정 된 열거형의 "태그" 라고도 합니다.폼의 형식 지정자

enum identifier { enumerator-list }

선언 식별자 태그를 지정 하는 열거형에는 열거자 목록 비 단말 이름입니다.해당 열거자 목록 "열거자 내용"를 정의 합니다. 해당 열거자 목록 아래에 자세히 설명 되어 있습니다.

선언 태그에는 태그를 사용 하지만 생략 선언 이후, 표시 되는 경우 열거자 목록 이전에 선언 된 열거형된 형식을 지정 합니다.태그에 정의 된 열거형을 참조 해야 하 고 해당 열거형 형식을 현재 범위에 있어야 합니다.열거형 형식을 다른 위치에 정의 되어 있기 때문에 열거자 목록 이 선언에서 나타나지 않습니다.파생 된 열거형의 형식 선언을 하 고 typedef 열거형에 대 한 선언을 열거형 형식을 정의 되기 전에 열거 태그 사용할 수 있습니다.

구문

  • 열거자 목록:
    열거자

    열거자 목록**,**enumerator

  • enumerator:
    열거 상수

    열거형 상수 = 상수 식

  • 열거형 상수:
    identifier

열거형 상수 에 있는 열거형 목록 값 열거 집합의 이름을 지정 합니다.기본적으로 첫 번째 열거형 상수 0 값과 연결 됩니다.다음 열거형 상수 목록에 값을 연결 된 ( 상수 식 + 1), 명시적으로 다른 값으로 연결 하지 않는 한.이름에 열거형 상수 값에 해당 하.

사용할 수 있습니다 열거형 상수 상수 식 = 기본 시퀀스의 값을 재정의할 수 있습니다.따라서 경우 열거형 상수 상수 식 = 표시는 열거자 목록에서 열거형 상수 의해 지정 된 값에 연결 된 상수 식.해당 상수 식 있어야 합니다 int 를 입력 하 고 음수가 될 수 있습니다.

다음 규칙 열거 집합의 구성원에 적용 됩니다.

  • 열거형 집합 상수 중복 값을 포함할 수 있습니다.예를 들어, 아마도 라는 0 값 가진 두 개의 식별자를 연결할 수 null 및 zero, 동일한 집합에 있습니다.

  • 식별자를 열거형 목록에 다른 열거형 목록에 일반 변수 이름과 식별자를 포함 하 여 동일한 표시 여부와 같은 범위 내의 다른 식별자에서 구별 되어야 합니다.

  • 태그 열거형 범위 지정 규칙을 지켜 주세요.가 구별에서 다른 열거형, 구조체 및 공용 구조체 태그와 동일 하 게 표시 되어야 합니다.

예제

열거형 선언은 이러한 예를 보여 줍니다.

enum DAY            /* Defines an enumeration type    */
{
    saturday,       /* Names day and declares a       */
    sunday = 0,     /* variable named workday with    */ 
    monday,         /* that type                      */
    tuesday,
    wednesday,      /* wednesday is associated with 3 */
    thursday,
    friday
} workday;

0 값이 연관 된 saturday 기본으로 합니다.식별자 sunday 명시적으로 0으로 설정 됩니다.나머지 식별자의 값은 1에서 5 기본적으로 제공 됩니다.

이 예제에서는 값의 집합에서 DAY 는 변수에 할당 된 today.

enum DAY today = wednesday;

Note 이름을 열거형 상수 값을 지정할 수 있습니다.이후에 DAY 열거형 된 미리 선언, 열거 태그 DAY 필요 합니다.

열거형된 데이터 형식의 변수에 정수 값을 명시적으로 할당 형식 캐스팅을 사용 하십시오.

workday = ( enum DAY ) ( day_value - 1 );

이 캐스팅에서 C 좋지만 필요 하지 않습니다.

enum BOOLEAN  /* Declares an enumeration data type called BOOLEAN */
{
    false,     /* false = 0, true = 1 */
    true 
}; 

enum BOOLEAN end_flag, match_flag; /* Two variables of type BOOLEAN */

이 선언으로 지정할 수 있습니다.

enum BOOLEAN { false, true } end_flag, match_flag;\

나 처럼

enum BOOLEAN { false, true } end_flag;
enum BOOLEAN match_flag;

이러한 변수를 사용 하는 예는 다음과 같습니다.

if ( match_flag == false )
    {
     .
     .   /* statement */ 
     .
    }
    end_flag = true;

또한 열거자 이름 없는 데이터 형식은 선언할 수 있습니다.데이터 형식의 이름을 생략 하 고 있지만 변수를 선언할 수 있습니다.변수 response 정의 된 형식의 변수입니다.

enum { yes, no } response;

참고 항목

참조

C + + 열거형 선언