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

조회수 2308회
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;
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)