c언어 열거형 예제

열거형 목록의 식별자는 다른 열거 형 목록의 일반 변수 이름 및 식별자를 포함하여 동일한 가시성을 가진 동일한 범위의 다른 식별자와 구별되어야합니다. 5. 모든 열거형 상수는 해당 범위에서 고유해야 합니다. 예를 들어 컴파일에서 다음 프로그램이 실패합니다. 아래 열거형은 태양으로부터 각 행성의 순서를 나타내는 정수 원시 값을 가진 이전 행성 열거체의 구체화입니다: 내부적으로 각 열거형 값에는 소스 코드에서 선언된 순서에 해당하는 정수를 포함합니다. 0부터 시작합니다. 프로그래머는 열거형 값에 대한 사용자 지정 정수를 직접 설정할 수 없지만 열거형 클래스의 자체 정의된 멤버에 임의의 값을 할당할 수 있는 오버로드된 생성자를 정의할 수 있습니다. getter를 정의하면 자체 정의된 멤버에 액세스할 수 있습니다. 내부 정수는 ordinal() 메서드를 사용하여 열거형 값에서 얻을 수 있으며, 열거 형의 열거형 값 목록은 값()) 메서드를 사용하여 순서대로 가져올 수 있습니다. 일반적으로 프로그래머는 열거형을 정수로 변환하고 그 반대의 경우도 마찬가지입니다.

[6] 배기 형식은 내부 정수를 사용하여 비교할 수 있습니다. 따라서 정렬할 수 있습니다. C에서 열거형은 관련 이름을 정수 값 집합에 할당합니다. Swift에서 열거는 훨씬 더 유연하며 열거형의 각 경우에 대한 값을 제공할 필요가 없습니다. 각 열거 형 케이스에 대해 값 (원시 값이라고 하는)이 제공되는 경우 값은 문자열, 문자 또는 정수 또는 부동 점 유형의 값일 수 있습니다. 열거 정의는 선택한 정수 값에 대한 이름을 정의하고 열거 형 정의의 범위에 없는 열거형 변수 다른 정수 값에 할당할 수 있으므로 구문 설탕입니다. [1] [2] [3] ML 계보(예: 표준 ML(SML), OCaml 및 하스켈의 함수형 프로그래밍 언어에서는 null 생성자만 있는 대수 데이터 형식을 사용하여 열거된 형식을 구현할 수 있습니다. 예를 들어(SML 시그니처 구문): TypeScript에서 열거형의 편리한 기능은 숫자 값에서 열거형값의 이름으로 이동하여 열거형의 해당 값으로 이동할 수도 있다는 것입니다. 예를 들어 값 2를 제시하지만 열거형에 매핑된 이름을 확인할 수 없는 경우 해당 이름을 조회할 수 있습니다. DAY 열거형 형식이 이전에 선언되었기 때문에 열거형 태그 DAY만 필요합니다. 포트란은 C와의 상호 운용성을 위해 수거된 형식만 가지고 있습니다.

따라서 의미 체계는 C와 유사하며 C에서와 같이 열거형 값은 정수일 뿐이며 더 이상 형식 검사가 수행되지 않습니다. 위의 C 예제는 열거형 집합에 중복 상수 값을 포함할 수 있기 때문에 Fortran에서 작성할 수 있습니다. 예를 들어 값 0을 동일한 집합에서 null과 0이라는 두 개의 서로 다른 식별자와 연결할 수 있습니다. C는 열거 값의 정수 표현을 프로그래머에게 직접 노출시다. 정수 및 열거형 값을 자유롭게 혼합할 수 있으며 열거형 값에 대한 모든 산술 연산 작업이 허용됩니다. 열거형 변수가 열거 값을 나타내지 않는 정수를 보유할 수도 있습니다. 실제로 언어 정의에 따르면 위의 코드는 클럽, 다이아몬드, 하트 및 스페이드를 형식 int의 상수로 정의하며, 이 코드는 해당 유형의 변수에 저장되어 있는 경우에만 열거형 카드수트로 변환됩니다. 키워드 `열거형`은 C 및 C++에서 새 열거 형을 선언하는 데 사용됩니다.

다음은 열거형 선언의 예입니다. 구조체 또는 공용 구조체와 마찬가지로 열거된 형식과 하나 이상의 열거 형이 도입된 선언은 해당 형식 또는 형식에서 파생된 하나 이상의 개체를 선언할 수도 있습니다. 열거형은 명명된 정수 상수 집합으로 구성됩니다. 열거 형 선언은 (선택 사항) 열거 태그의 이름을 지정하고 명명된 정수 식별자 집합을 정의합니다(„열거 집합”, „열거자 상수”, „열거자 상수” 또는 „멤버”라고 함).