본문 바로가기

C_study

[C] 코딩도장 57 : 열거형 사용하기

57.8

#include <stdio.h>

enum PROTOCOL_TYPE {
    PROTOCOL_IP = 4, //열거형은 앞의 값을 할당하고 뒤의 값을 할당하지 않으면 1씩 커짐
    PROTOCOL_UDP,
    PROTOCOL_TCP
};

int main()
{
    enum PROTOCOL_TYPE p1, p2, p3;

    p1 = PROTOCOL_TCP;
    p2 = PROTOCOL_UDP;
    p3 = PROTOCOL_IP;

    printf("%d %d %d\n", p1, p2, p3); // 6 5 4가 나와야함
    
    return 0;
}

57.9

#include <stdio.h>

enum MasterYiSkill {
    AlphaStrike = 1,
    Meditation,
    WujuStyle,
    Highlander
};
 
int main()
{
   enum MasterYiSkill skill;
   skill = Meditation;

    switch (skill)
    {
    case AlphaStrike:
        printf("일격 필살\n");
        break;
    case Meditation:
        printf("명상\n");
        break;
    case WujuStyle:
        printf("우주류 검술\n");
        break;
    case Highlander:
        printf("최후의 전사\n");
        break;
    default:
        break;
    }
    return 0;
}

57.10

#include <stdio.h>

// INTERFACE_TYPE은 Windows 커널의 winddk.h 헤더 파일에 정의된 열거형
typedef enum _INTERFACE_TYPE {
    InterfaceTypeUndefined = -1,
    Internal,
    Isa,
    Eisa,
    MicroChannel,
    TurboChannel,
    PCIBus,
    VMEBus,
    NuBus,
    PCMCIABus,
    CBus,
    MPIBus,
    MPSABus,
    ProcessorInternal,
    InternalPowerBus,
    PNPISABus,
    PNPBus,
    MaximumInterfaceType
} INTERFACE_TYPE, *PINTERFACE_TYPE;

int main()
{
    for(INTERFACE_TYPE i = Internal ; i < MaximumInterfaceType; i++)
    {
        printf("%d ", i);
    }

    return 0;
}