enum타입 정의에 대해 여쭙니다

enum {RANDOM, IMMEDIATE, SEARCH} strategy;
strategy = IMMEDIATE;

C++에서는 이렇게 써도 됐는데 C에서는 에러가 떠요 너무 어렵네요 ㅜㅜ..어떻게 해야 될까요

에러 내용

error: conflicting types for ‘strategy’
error: previous declaration of ‘strategy’ was here

1답변

  • 좋아요

    0

    싫어요
    채택취소하기

    C++에서는 그렇게 써도 되지만 C에서는 이렇게 써야 합니다.

    typedef enum {RANDOM, IMMEDIATE, SEARCH} strategy;
    strategy my_strategy = IMMEDIATE;
    

    그리고 개인적으로는 type과 변수를 구분하는 게 더 관리하기 쉽기 때문에 아래와 같이 쓰는 걸 권하고 싶군요

    typedef enum {RANDOM, IMMEDIATE, SEARCH} strategy_type;
    strategy_type my_strategy = IMMEDIATE;
    

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.