programing

C에서 ENUM을 함수 인수로 전달하는 방법

sourcejob 2023. 10. 31. 21:09
반응형

C에서 ENUM을 함수 인수로 전달하는 방법

나는 다음과 같이 선언된 열거형을 가지고 있습니다.

typedef enum 
{
   NORMAL = 0,           
   EXTENDED              

} CyclicPrefixType_t;

CyclicPrefixType_t cpType;  

이것을 인수로 하는 함수가 필요합니다.

fun(CyclicPrefixType_t cpType);  

함수 선언은 다음과 같습니다.

void fun(CyclicPrefixType_t cpType);

어떻게 고치죠?저는 그것이 옳지 않다고 생각합니다.

바로 그 방법입니다.

#include <stdio.h>

typedef enum {
    NORMAL = 31414,
    EXTENDED
} CyclicPrefixType_t;

void func (CyclicPrefixType_t x) {
    printf ("%d\n", x);
}

int main (void) {
    CyclicPrefixType_t cpType = EXTENDED;
    func (cpType);
    return 0;
}

이것은 다음의 값을 출력합니다.EXTENDED(이 경우 31415) 예상대로.

FWIW (약간 혼란을 주는...) 다음도 작동합니다.

#include <stdio.h>

enum CyclicPrefixType_t {
    NORMAL = 31414,
    EXTENDED
};

void func (enum CyclicPrefixType_t x) {
    printf ("%d\n", x);
}

int main (void) {
    enum CyclicPrefixType_t cpType = EXTENDED;
    func (cpType);
    return 0;
}

보아하니 유산 C인 것 같네요.

언급URL : https://stackoverflow.com/questions/4654655/how-to-pass-enum-as-function-argument-in-c

반응형